有没有办法在python中重复一段时间或for循环,要求用户在循环结束时这样做?

时间:2015-10-13 22:32:32

标签: python

我刚刚开始学习Python,我正在编写一个简单的骰子滚动程序,询问用户骰子的数量以及骰子的数量。

到目前为止,我有这个:

numberOfDice = eval(input("How many dice/die would you like to use? "))
numberOfSides = eval(input("How many sides will each die have? "))

for i in range(1,numberOfDice + 1) :
    roll = random.randint(1,numberOfSides)
    print(roll)

while True :
    replay = input("Would you like to play again?     ")
    if replay.lower() == "yes" :
        numberOfDice = eval(input("How many dice/die would you like to use?     "))
        numberOfSides = eval(input("How many sides will each die have?     "))
        for i in range(1,numberOfDice + 1) :
            roll = random.randint(1,numberOfSides)
            print(roll)
    else :
        break

它有效,但对我来说似乎并不高效。我想知道是否有一种方法可以在第一个for循环结束时询问用户是否想要再次播放,如果他们说是,则向他们询问新值并再次重复for循环。有没有办法做这样的事情?

1 个答案:

答案 0 :(得分:4)

一般应用程序是“保持有效”循环,例如:

replay = True
while replay:
    ... remainder of code
    replay = raw_input("Roll again? (y or n)") == 'y'

请注意,这是一个简单版本,没有错误检查:如果用户输入“y”,程序将继续;其他任何东西终止了滚动一个douse的精彩世界(从不说'死':-))。