Zahlen raten

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
dark-lion
User
Beiträge: 46
Registriert: Mittwoch 25. April 2012, 14:22

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"
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

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.
Das Leben ist wie ein Tennisball.
dark-lion
User
Beiträge: 46
Registriert: Mittwoch 25. April 2012, 14:22

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
webspider
User
Beiträge: 485
Registriert: Sonntag 19. Juni 2011, 13:41

Entweder ``punkte = punkte + 1`` oder ``punkte += 1``.
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

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).
Das Leben ist wie ein Tennisball.
Antworten