我刚刚开始学习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循环。有没有办法做这样的事情?
答案 0 :(得分:4)
一般应用程序是“保持有效”循环,例如:
replay = True
while replay:
... remainder of code
replay = raw_input("Roll again? (y or n)") == 'y'
请注意,这是一个简单版本,没有错误检查:如果用户输入“y”,程序将继续;其他任何东西终止了滚动一个douse的精彩世界(从不说'死':-))。