gpt4 book ai didi

python - 尝试仅循环数学测验程序的某些部分

转载 作者:行者123 更新时间:2023-11-30 23:49:50 25 4
gpt4 key购买 nike

我正在尝试找出循环这个简单数学测验程序的最佳方法(这里的“最佳”意味着最简洁的方法)。我得到两个随机数及其总和,提示用户输入并评估该输入。理想情况下,当他们想再次玩时,它应该获得新的数字,并在提示不是有效答案时提出相同的问题……但我似乎不知道如何去做。

import random
from sys import exit

add1 = random.randint(1, 10)
add2 = random.randint(1, 10)
answer = str(add1 + add2)


question = "What is %d + %d?" % (add1, add2)
print question
print answer

userIn = raw_input("> ")

if userIn.isdigit() == False:
print "Type a number!"
#then I want it to ask the same question and prompt for an answer.
elif userIn == answer:
print "AWESOME"
else:
print "Sorry, that's incorrect!"


print "Play again? y/n"
again = raw_input("> ")

if again == "y":
pass
#play the game again
else:
exit(0)

最佳答案

你在这里遗漏了两件事。首先,您需要某种循环构造,例如:

while <condition>:

或者:

for <var> in <list>:

并且您需要某种方法来“短路”循环,以便您可以重新开始如果您的用户输入非数字值,则位于顶部。为此,你想要阅读 continue 语句。把这些放在一起,你可能会得到像这样的东西:

While True:
add1 = random.randint(1, 10)
add2 = random.randint(1, 10)
answer = str(add1 + add2)


question = "What is %d + %d?" % (add1, add2)
print question
print answer

userIn = raw_input("> ")

if userIn.isdigit() == False:
print "Type a number!"

# Start again at the top of the loop.
continue
elif userIn == answer:
print "AWESOME"
else:
print "Sorry, that's incorrect!"

print "Play again? y/n"
again = raw_input("> ")

if again != "y":
break

请注意,这是一个无限循环 (while True),仅在遇到 break 语句时退出。

最后,我强烈推荐Learn Python the Hard Way作为 Python 编程的一个很好的介绍。

关于python - 尝试仅循环数学测验程序的某些部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7464345/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com