Seite 1 von 1

Zahlen raten

Verfasst: Mittwoch 12. September 2012, 13:51
von dark-lion
wenn ich den script ausführe, habe ich am anfang 0 punkte, nach einer richtigen antwort 1 punkt und nach 2 oder mehr richtigen immer noch 1 punkt.
warum?

Code: Alles auswählen

import random
random.seed()
punkte = 0
punkt_punkte = "Punkt"

while True:
    a = random.randint(1, 10)
    b = random.randint(1, 10)
    c = a + b
    if punkte == 0 or punkte > 1:
        punkt_punkte = "Punkte"
    if punkte == 1:
        punkt_punkte = "Punkt"
    print "du hast ", punkte , " ", punkt_punkte,
    print "was gibt "  ,a , " + " ,b , " ?:"
    input1 = raw_input()
    eingabe = int(input1)
    if eingabe == c:
        punkte = punkte =+ 1
        print "die Antwort", eingabe, "war richtig"

Re: Zahlen raten

Verfasst: Mittwoch 12. September 2012, 14:06
von EyDu
Hallo.

An deinem Code sind gleich mehrere Dinge unschön.

- Das ``random.seed()`` ist überflüssig, das wird beim Importieren des random-Moduls eh schon erledigt.
- "punkt_punkte" ist auch ein nichtssagender Name, da solltest du dir etwas besseres einfallen lassen.
- Um zu bestimmen, ob es Punkt oder Punkte heißen soll, solltest du else verwenden:

Code: Alles auswählen

if punkte == 1:
    punkt_punkte = "Punkt"
else:
    punkt_punkte = "Punkte"
oder noch einfacher:

Code: Alles auswählen

punkt_punkte = "Punkt" if punkte == 1 else "Punkte"
oder

Code: Alles auswählen

punkt_punkte = ("Punkte", "Punkt")[punkt==1]
- a, b und c sind auch sehr nichtssagend, zumindest "c" solltest du in "ergebnis" oder etwas ähnliches umbenennen

Zum eigentlichen Fehler: Die Zeile ``punkte = punkte =+ 1`` ist das Problem.

Re: Zahlen raten

Verfasst: Mittwoch 12. September 2012, 14:26
von dark-lion
Aber wenn es nun so heißt, ist der fehler der gleiche:

Code: Alles auswählen

punkte =+ 1 
Und danke für die verbesserung:-D

Re: Zahlen raten

Verfasst: Mittwoch 12. September 2012, 14:39
von webspider
Entweder ``punkte = punkte + 1`` oder ``punkte += 1``.

Re: Zahlen raten

Verfasst: Mittwoch 12. September 2012, 14:57
von EyDu
Vielleicht noch zur Erläuterung, warum dein fehlerhafter Code keinen Fehler wirft. Die Zeile

Code: Alles auswählen

punkte = punkte =+ 1
wird interpretiert als

Code: Alles auswählen

punkt = punkte = (+1)
Da es keinen "=+"-Operator gibt, wird das "+" als unäres Plus interpretiert, also also Vorzeichen der 1 (analog zum Minus bei -1).