我刚刚开始学习 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 循环。有什么办法可以做这样的事情吗?
最佳答案
一般应用是“stay while valid”循环,如:
replay = True
while replay:
... remainder of code
replay = raw_input("Roll again? (y or n)") == 'y'
请注意,这是一个简单的版本,没有错误检查:如果用户输入“y”,程序将继续;其他任何事情都会终止滚动的美妙世界(永远不要说“死”:-))。
关于python - python 有没有办法通过要求用户在循环结束时重复 while 或 for 循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33113728/