Hinzufügen von Validierung zu beantworten in Quiz gibt falsche Antworten

Ich bin ein kompletter Anfänger mit Python und arbeite an einem Multiple-Choice-Quiz, das Fragen aus einer Datei liest und eine Partitur hält, die dann in eine Datei schreibt.

Alles funktionierte perfekt, bis ich den Antworten des Nutzers die Validierung hinzugefügt hatte. Jetzt, wenn ich das Programm laufe, heißt es, dass meine Antworten falsch sind!

Was habe ich gemacht?

Version 1, die funktioniert

def inputandoutput(): questions_file = open_file("questions.txt", "r") title = next_line(questions_file) welcome(title) score = 0 # get first block category, question, answers, correct, explanation = next_block(questions_file) while category: # ask a question print(category) print(question) for i in range(4): print("\t", i + 1, "-", answers[i]) # get answer answer = input("What's your answer?: ") # check answer if answer == correct: print("\nRight!", end=" ") score += 1 else: print("\nWrong.", end=" ") print(explanation) print("Score:", score, "\n\n") # get next block category, question, answers, correct, explanation = next_block(questions_file) questions_file.close() 

Version 2, die sagt, ich habe jetzt die falschen Antworten

 def inputandoutput(): questions_file = open_file("questions.txt", "r") title = next_line(questions_file) welcome(title) score = 0 # get first block category, question, answers, correct, explanation = next_block(questions_file) while category: # ask a question print(category) print(question) for i in range(4): print("\t", i + 1, "-", answers[i]) # get answer and validate while True: try: answer = int(input("What's your answer?: ")) if answer in range (1,5): break except ValueError: print ("That's not a number") else: print ("the number needs to be between 1 and 4, try again ") # check answer if answer == correct: print("\nRight!", end=" ") score += 1 else: print("\nWrong.", end=" ") print(explanation) print("Score:", score, "\n\n") # get next block category, question, answers, correct, explanation = next_block(questions_file) 

Hilfe?

One Solution collect form web for “Hinzufügen von Validierung zu beantworten in Quiz gibt falsche Antworten”

In Ihrer ursprünglichen Version war answer eine Zeichenfolge. In deiner neuen Version ist es ein int .

Wenn du deinen try änderst, um zu sein:

 answer = input("What's your answer?: ") if int(answer) in range (1,5): 

Dann kannst du den ValueError noch fangen

Python ist die beste Programmiersprache der Welt.