python - python 有没有办法通过要求用户在循环结束时重复 while 或 for 循环?

标签 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 循环。有什么办法可以做这样的事情吗?

最佳答案

一般应用是“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/

相关文章:

Python:如何替换并知道是否匹配

Python:比较两个列表的更好方法?

python - 用于匹配名称后跟可选空格的正则表达式,但忽略注释

python - 使用 Python 解析文本文件

python - 使用 format 方法打印一个整洁的乘法表

python - 使用 django-filter 按单个日期过滤

python - 带有一列图像的 QTableView

python - 从python中的max函数获取有线结果

python - 用于指定单元测试执行顺序的 Nose 插件

python - 如何在带有 FastAPI 的嵌套路由器中包含路径参数?