作为Python的新手,我在尝试开发测验程序时遇到了错误。我发现当程序生成两个随机数加在一起,并且用户试图输入正确的问题值时,程序会跳起来并仍然打印出来自用户的输入无效。
def quiz():
print("The quiz will begin shortly")
print(numberone)
print("+")
print(numbertwo)
answerone=input("Answer:")
if answerone==(numberone + numbertwo):
print("Correct")
score+1
print("You're score is", score, ".")
else:
print("Incorrect")
print(numberone+numbertwo)
我不明白我做错了什么,所以任何帮助都会非常感激。
(注意:'numberone'和numbertwo'都是定义的)
答案 0 :(得分:0)
您需要在函数numberone
中定义numbertwo
和quiz
:
def quiz():
numberone = 6
numbertwo = 3 # etc.
或者,将它们作为参数传递:
def quiz(numberone, numbertwo):
print numberone #etc
答案 1 :(得分:0)
您的问题是您的用户输入的是字符串。在比较之前,您需要将其转换为整数。
int(answerone)
所以试试这个:
def quiz():
print("The quiz will begin shortly")
print(numberone)
print("+")
print(numbertwo)
answerone=input("Answer:")
if int(answerone)==(numberone + numbertwo):
print("Correct")
score += 1
print("You're score is {}.".format(str(score)))
else:
print("Incorrect")
print(numberone+numbertwo)
答案 2 :(得分:0)
您在增加
时忘记分配分数是:
print("Correct")
score+1
print("You're score is", score, ".")
应该是:
print("Correct")
score += 1
print("You're score is", score, ".")
答案 3 :(得分:0)
您的代码中存在许多问题。让我们一个接一个地看。
numberone
,numbertwo
和score
无法在此范围内访问。一个好主意是将它们作为函数参数传递。像这样:
def quiz(numberone,numbertwo,score):
answerone
应为整数,请将输入转换为int
像这样:
answerone=int(input("Answer:")) #if using python3
1
添加score
,但不会将其重新分配。使用score=score+1
或score+=1
而非score+1
score
以使用score
的更新值进行下一次调用。所以,工作代码可以是这样的:
def quiz(numberone,numbertwo,score):
print("The quiz will begin shortly")
print(numberone)
print("+")
print(numbertwo)
answerone=int(input("Answer:"))
if answerone==(numberone + numbertwo):
print("Correct")
score += 1
print("You're score is", score, ".")
else:
print("Incorrect")
print(numberone+numbertwo)
return score
你可以像下面这样打电话:
score=0
while(score<10):
score=quiz(someRandNumber,anotherRandNumber,score)
else:
print "Your score is 10"