Seite 1 von 1

Ergebnis schwankt?

Verfasst: Samstag 14. März 2020, 11:13
von Sarius
Hallo,
dieser Code hier sollte eigentlich zufällige Wörter aus der Datei ausgeben mit dem zugehörigen richtigen Wort.
Jedoch ist manchmal die Länge der Liste zu wenig, in diesem Fall sollte sich der Vorgang eigentlich neustarten. Aber aus irgendeinen Grund scheint es nicht zu funktionieren, kann mir jemand erklären wieso?

Code: Alles auswählen

def GetWords():
    try:
        file = open("enable1.txt")
    except:
        print("Error, file could'nt be opened.")
        sys.exit()
        
    rounds = 0
    words = []

    word_lenght = random.randint(4, 15)

    every_line = file.read().splitlines()
    file.close()
    
    while rounds != 75 and len(words) != 15:
        
        line = random.choice(every_line)

        if len(line) == word_lenght:
            words.append(line)
        else:
            rounds += 1
    
    if len(words) < 5:
        GetWords()

    real_word = random.choice(words)
    
    return words, real_word

Re: Ergebnis schwankt?

Verfasst: Samstag 14. März 2020, 11:20
von __blackjack__
@Sarius: Schreib das erst mal ohne die Rekursion und ohne die sinnfreie Ausnahmebehandlung, vorher macht das keinen Sinn sich das anzuschauen.

Re: Ergebnis schwankt?

Verfasst: Samstag 14. März 2020, 11:29
von Sarius
__blackjack__ hat geschrieben: Samstag 14. März 2020, 11:20 @Sarius: Schreib das erst mal ohne die Rekursion und ohne die sinnfreie Ausnahmebehandlung, vorher macht das keinen Sinn sich das anzuschauen.
Könntest du erklären was du damit meinst? Die Ausnahmebehandlung braucht man doch wenn die Liste zu wenig Wörter beinhaltet, oder nicht?

Re: Ergebnis schwankt?

Verfasst: Samstag 14. März 2020, 11:30
von Sirius3
Dir ist klar, dass die Rekursion nichts bringt, weil du nichts mit dem Rückgabewert machst?
Einfacher wäre es, wenn Du erst alle Wörter mit der richtigen Länge herausfilterst und dann mit random.sample die gewünschte Anzahl nimmst.

lenght <> length

Re: Ergebnis schwankt?

Verfasst: Samstag 14. März 2020, 11:34
von Sarius
Sirius3 hat geschrieben: Samstag 14. März 2020, 11:30 Dir ist klar, dass die Rekursion nichts bringt, weil du nichts mit dem Rückgabewert machst?
Einfacher wäre es, wenn Du erst alle Wörter mit der richtigen Länge herausfilterst und dann mit random.sample die gewünschte Anzahl nimmst.

lenght <> length
War mir nicht klar, danke!

Re: Ergebnis schwankt?

Verfasst: Samstag 14. März 2020, 12:12
von nezzcarth
Sarius hat geschrieben: Samstag 14. März 2020, 11:29 Könntest du erklären was du damit meinst? Die Ausnahmebehandlung braucht man doch wenn die Liste zu wenig Wörter beinhaltet, oder nicht?
Ich sehe nur beim Öffnen der Datei eine Ausnahmebehandlung (try-except-Statement) die dafür sorgt, dass eine statische Fehlermeldung ausgegeben und das Skript beendet wird. Das passiert aber doch sowieso. Nur dafür braucht man streng genommen kein try-except.

Re: Ergebnis schwankt?

Verfasst: Samstag 14. März 2020, 13:21
von Sarius
nezzcarth hat geschrieben: Samstag 14. März 2020, 12:12
Sarius hat geschrieben: Samstag 14. März 2020, 11:29 Könntest du erklären was du damit meinst? Die Ausnahmebehandlung braucht man doch wenn die Liste zu wenig Wörter beinhaltet, oder nicht?
Ich sehe nur beim Öffnen der Datei eine Ausnahmebehandlung (try-except-Statement) die dafür sorgt, dass eine statische Fehlermeldung ausgegeben und das Skript beendet wird. Das passiert aber doch sowieso. Nur dafür braucht man streng genommen kein try-except.
Oh, das stimmt. Ich dachte etwas anderes wäre gemeint. Danke