Wo ist der Fehler?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
pythonatic
User
Beiträge: 11
Registriert: Montag 13. September 2010, 18:00

Hi Commmunity,

Ich habe folgenden Code:

Code: Alles auswählen

import random
random.seed()


Zahl1 = random.randint(1,32)
Zahl2 = random.randint(1,32)

Anzahl = 0
while Anzahl == 1000000:
    Ergebnis = Zahl1 * Zahl2
    print("Wie lautet das Ergebnis:",Zahl1,"x",Zahl2,"?" )
    Eingabe = int(input("Das Ergebnis lautet:"))
    Anzahl = Anzahl +1

if  Ergebnis == Eingabe:
    print("Ihr Ergebnis ist richtig!")
else:
    print("Ihr Ergebnis ist leider falsch!")
if  Anzahl == 1000000:
    sys.exit(0)
So jetzt sagt der mir, dass "Ergebnis" nach dem "if" nicht definiert ist. Aber oben habe ich Dich Ergebnis definiert.

Habt ihr Verbesserungsvorschläge? Bin ziemlich neu also bitte nicht direkt fertig machen ;)

Mit freundlichen Grüßen

pythonatic
BlackJack

@pythonatic: Ergebnis ist nicht definiert weil die Zeile nie ausgeführt wird.

Du setzt Anzahl auf 0 und dann folgt eine ``while``-Schleife die solange ausgeführt wird wie Anzahl gleich 1000000 ist, also *nie* denn Anzahl ist ja gar nicht 1000000 sondern 0. Über die Bedingung beim ``while`` solltest Du also nochmal nachdenken.

Und vielleicht eine ``for``-Schleife statt einer ``while``-Schleife verwenden, denn ``while``-Schleifen nimmt man in der Regel für Schleifen bei denen man nicht weiss wie oft etwas wiederholt werden soll.

`random.seed()` aufzurufen ist übrigens nicht nur unnötig, sondern kann Ergebnisse in bestimmten Fällen sogar weniger zufällig machen.
Antworten