Seite 1 von 1

Falsche Wert-Ausgaben (Vorsicht!, für viele evtl. zu einfach)

Verfasst: Samstag 5. Oktober 2019, 16:55
von Kenneth
Hallo liebe Leute,
bin absoluter Anfänger mit einem Problem, welches ich trotz Suche nicht lösen kann.
Lottoprogramm (Anfang):

Code: Alles auswählen

print("LOTTO 6 aus 49")
mz=[1, 3, 12, 22, 32, 45]    #Meine Zahlen
import random
for u in range (10):            # 10 Ziehungen
    gewinnzahlen=set()     # um doppelte Zahlen zu vermeiden, nehm ich "set".
    for i in range(6):
        x=random.randint(1,49)
        gewinnzahlen.add(x)
    print(mz,"Ihr Tipp ")
    print("Die Gewinnzahlen der Ziehung lauten:")
    print(sorted(gewinnzahlen))
    print("--------------------------------------------")
    print ()
print("Done!")
- Als Gewinnzahlen müssten doch bei 10 mal ziehen (for u in range(10)),
pro Ziehung immer 6 Zahlenrauskommen!
Das ist aber nicht der Fall.
Mal sind es 6, dann mal wieder 5 etc.
Wenn ich das "set" in eine normale Liste änder, dann ist immer alles korrekt.
Aber sowie eine Vermeidung von Doppelzahlen programiert wird, kommen nicht immer
6 Zahlen als Ergebnis (gewinnzahlen).

Vielleicht kann ja mal jemand drüberschauen.
Vielen Dank im voraus...

Re: Falsche Wert-Ausgaben (Vorsicht!, für viele evtl. zu einfach)

Verfasst: Samstag 5. Oktober 2019, 16:59
von __deets__
Bitte in Zukunft die Code-Tags benutzen (</>-Knopf im Editor). Sonst kann keiner deinen Quelltext lesen, weil die eminent wichtigen Einrueckungen verloren gehen.

Und zu deinem Problem: ein set zu benutzen ist ja schonmal ne gute Idee. Nur wenn du das tust, dann musst du natuerlich auch den Fall bedenken, den dir das Set abfangen soll: du ziehst doppelt. Du kannst also nicht einfach stumpf sechs mal ziehen. Sondern musst so lange ziehen, bis die Menge der gezogenen Zahlen der gewuenschten Anzahl entspricht.

Re: Falsche Wert-Ausgaben (Vorsicht!, für viele evtl. zu einfach)

Verfasst: Samstag 5. Oktober 2019, 17:34
von Sirius3
Wenn Du doppelte Zahlen vermeiden willst, mußt Du auch oft genug ziehen, falls eine Zufallszahl doch doppelt ist.
Das geht aber auch bequemer:

Code: Alles auswählen

gewinnzahlen = random.sample(range(1,50), 6)

Re: Falsche Wert-Ausgaben (Vorsicht!, für viele evtl. zu einfach)

Verfasst: Samstag 5. Oktober 2019, 19:33
von Kenneth
Vielen Dank f.d. schnellen Antworten. :D

@Sirius3:
Aber random.sample legt ja keine richtige Liste an. (soweit ich das sehe).
Die Liste brauche ich aber im späteren Programmverlauf, um
z.B. "3 Richtige" (Hurra!,Yeah!, Ausgesorgt!), ausgeben zu lassen, wenn (x) aus der Liste, z.B 3 mal in "Meinezahlen"(mz) vorkommt.
Kurz: ich muss an den Wert/Zahl (x) rankommen, den( random.sample) jeweils erzeugt.
Geht das irgendwie?

+Sorry, falls die Frage zu krumm formuliert ist.+
Bin erst die 1. Woche aktiv.

Re: Falsche Wert-Ausgaben (Vorsicht!, für viele evtl. zu einfach)

Verfasst: Samstag 5. Oktober 2019, 19:48
von Sirius3
Wie siehst Du das? Um zu ermitteln, wie viele Richtige du hast, sind Sets ganz hilfreich.

Re: Falsche Wert-Ausgaben (Vorsicht!, für viele evtl. zu einfach)

Verfasst: Samstag 5. Oktober 2019, 23:19
von Kenneth
@Sirius3
Habe es anhand Deiner Info random.sample hinbekommen.
Auch die Richtigen kann ich damit ja ausgeben.
Es läuft.

Thank you, und einen schönen Sonntag...