试着循环一个数学测试程序的部分内容



我正在尝试找出循环这个简单数学测试程序的最佳方法(这里的最佳方法是指最简洁和最简单的方法)。我得到两个随机数及其和,提示用户输入,并对输入求值。理想情况下,当玩家想再次玩游戏时,它应该得到新的数字,当提示不是有效答案时,它应该问同样的问题……但我似乎就是不知道该怎么做。

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中有两种基本的循环:for循环和while循环。你可以使用for循环来遍历列表或其他序列,或者执行特定次数的操作;当你不知道你需要做多少次某事时,你会使用a while。哪一个看起来更适合你的问题?

相关内容

  • 没有找到相关文章

最新更新