Python中的学习者(版本为2.7.5)。
目前,我正在开发一个简单的测验脚本,允许用户重新回答问题,并限制用户回答错误问题的机会。
因此,将总限制设置为5,并且消息(例如“结束!”)将在达到限制时显示给用户。所有问题都共享该限制。
当我测试下面提到的脚本时,我发现了几个问题。
1)即使问题1答错了5次,问题2仍然会显示,如果已经达到限制,如何阻止下一个问题出现?
2)我想问一下,我应该在哪里插入结束消息的代码(" end !")如果达到了限制呢?
非常感谢!
def quiz():
score = 0
counter = 0
print "Please answer the following questions:"
print "Question 1 - ?"
print "a."
print "b."
print "c."
while counter <5:
answer = raw_input("Make your choice:")
if answer == "c":
print("Correct!")
score = score +1
else:
print("Incorrect!")
counter = counter +1
print "Question 2 - ?"
print "a."
print "b."
print "c."
while counter <5:
answer2 = raw_input("Make your choice:")
if answer2 == "a":
print("Correct!")
score = score +1
else:
print("Incorrect!")
counter = counter +1
print
print ("Your score is ") + str(score)附注:代码似乎与复制和粘贴功能有点不协调。很抱歉给您带来不便
发布于 2019-02-13 13:27:14
你真的应该对它进行重构,让它少一点重复。因此,我会将问题和答案逻辑放入它们自己的函数中,并传入问题文本和正确答案。然而,按原样使用您的代码,每次您递增计数器时,都需要检查它是否大于5,并且只使用while True进行循环。因此,对于每个问题:
correct = "a"
while True:
answer = raw_input("Make your choice:")
if answer == correct:
print("Correct!")
score = score +1
break
else:
print("Incorrect!")
counter = counter +1
if counter == 5:
print "END!"
return
break发布于 2019-02-13 13:33:17
您总是打印第二个问题,而不检查是否达到了错误答案的限制。在打印第二个问题之前,您可以这样做
if counter >= 5:
print "END!"
return如果达到限制,则条件中的return语句将终止quiz函数。这需要在打印任何问题之前完成。
此外,您可以使用带有答案的问题列表和一个简单的for循环来迭代所有问题,避免每次都重复相同的逻辑,从而改进代码。
https://stackoverflow.com/questions/54663012
复制相似问题