2016-11-24 3 views
-1

Ich versuche, jedes Mal, wenn der Benutzer eine Antwort erhält, 1 zu Punkten, können Sie sehen, ich bekomme die Fragen und Antworten aus einer Datei, und die Datei ist eingerichtet, um zuerst die Frage zu haben, gefolgt von den möglichen Antworten gefolgt von der richtigen Antwort.Warum funktioniert dieser Python-Code nicht?

Beispiel: Was ist 2 * 2 ist, 4,2,8,6, ein

das wäre, was in der Datei ist, die ich lese. Jedes Mal, wenn ich es ausführe, wird es mit allen Loops und Listen und so weiter gut gehen, aber es wird nicht jedes Mal, wenn es die richtige Antwort ist, 1 zu der Punktzahl hinzugefügt. Jeder sieht ein Problem mit diesem Teil des Codes?

inputtedAnswer = input("Choice (a-d): ") 

if inputtedAnswer == rightAnswer[0]: 
    score += 1 
else: 
    score = score 
+0

rightAnswer [0] ist, wo ich die Informationen in Form einer Liste für die richtige Antwort gespeichert, aber wenn ich es mit einer Zeichenkette vergleiche, wird es nicht regton. –

+0

Erhalten Sie einen Fehler? Sind Sie sicher, dass RightAnswer und InputAnswer genau das sind, was Sie erwarten? Meine Vermutung wäre, dass Sie entweder RightAnswer [0] als String ('str (rightAnswer [0])') oder etwas, das nicht den Wert hat, den Sie denken, haben. –

+2

Überprüfen Sie die Werte mit '' 'print (inputedAnswer, rightAnswer [0])' ''. Sind sie gleich? Sind sie vom selben Typ? Sind sie das, was du von ihnen erwartet hast? – wwii

Antwort

0

Ohne Ihre RightAnswer-Liste zu sehen, ist es schwierig zu wissen, was das Problem ist. Ich habe eine Liste namens rightAnswer erstellt und den Index 0 auf 1 als Ganzzahl gesetzt. Ich habe dann Ihren Code verwendet, um zu überprüfen, was der Benutzer eingegeben hat. Der einzige Unterschied war, dass ich die Eingabe in eine ganze Zahl umwandelte, weil rightAnswer [0] eine Ganzzahl war. Beachten Sie, dass das Konvertieren von Eingaben in Ganzzahlen keine gute Idee ist, da das Programm abstürzt, wenn der Benutzer eine Zeichenfolge eingibt. Danach hat Ihr Programm gut funktioniert.

rightAnswer = [1] 
score = 0 

inputtedAnswer = int(input("Type in 1")) 

if inputtedAnswer == rightAnswer[0]: 
    score += 1 
    print ("Score: " + score) 
else: 
    score = score 

denke ich, dass das ist, was Sie wollten, aber es ist schwierig, ohne zu wissen, den Inhalt Ihrer rightAnswer Liste zu wissen

+0

danke! total vergessen über den int vs string .. ich bin neu bei python, danke für die hilfe! –

+0

Kein Problem, froh zu helfen –

Verwandte Themen