【发布时间】:2016-09-30 17:34:52
【问题描述】:
我对 Python 还是很陌生,但在弄清楚以下问题时遇到了一些麻烦:
import random
import sys
print("Welcome to this Maths quiz.")
playerName = str(input("Please enter your name: "))
playerAge = int(input("Please enter your age: "))
if playerAge < 11:
print("This quiz is not for your age.")
sys.exit(0)
else :
print("Great! Let's begin.\n")
quizQuestions = ["9(3+8)", "7+9*8", "(9+13)(9-5)", "50*25%", "104-4+5*20"]
quizAnswers = ["99", "79", "88", "12.5", "0"]
quizSync = list(zip(quizQuestions, quizAnswers))
random.shuffle(quizSync)
quizQuestions, quizAnswers = zip( * quizSync)
questionNumber = 1
quizScore = 0
def displayQuestion(quizQuestions, quizAnswers, questionNumber, quizScore):
print("Question " + str(questionNumber) + ": " + quizQuestions[questionNumber - 1] + "\n")
questionAnswer = str(input())
if questionAnswer == quizAnswers[questionNumber - 1]:
print("\nCorrect!\n")
quizScore += 1
else :
print("\nIncorrect! The answer is: " + quizAnswers[questionNumber - 1] + "\n")
while questionNumber < 6:
displayQuestion(quizQuestions, quizAnswers, questionNumber, quizScore)
questionNumber += 1
print("You have a total score of: "+str(quizScore))
如果玩家答对问题,我希望函数“displayQuestion”中的变量“quizScore”加一。但是,测验完成后,即使玩家答对了,最后的打印功能也总是打印分数为 0。
【问题讨论】:
-
你得到“正确!”打印出来的?
-
是的,我得到“正确!”和印有相应答案的“不正确”。
-
一方面,
displayQuestion不返回字符串,那你为什么要在print(displayQuestion(quizQuestions, quizAnswers, questionNumber, quizScore))中打印呢? -
在你的函数中全局化 quizScore 。