Python 骰子脚本失败

标签 python python-3.x

我是 Python 新手,我在使用脚本时遇到了麻烦。该脚本的要点是创建一个掷出 1 到 6 之间的随机数的骰子。脚本如下所示:

import random
while True:
    roll = input("Wanna roll? y/n: ").strip().lower()
    if roll == "y":
        dice = random.randint(1,6)
        print(dice)
    else:
        again = input("How about now? y/n: ").strip().lower()
        if again == "y":
            dice = random.randint(1,6)
            print(dice)
        else:
            print(again)

这就是代码。理想情况下,我希望 Python 询问“Wanna roll?”并且,如果用户输入“y”,Python 应该返回 1 到 6 之间的随机数。这个位工作正常。

但是,如果用户键入“n”,我希望 Python 询问“现在怎么样?”如果用户键入“y”,那么我希望 Python 返回 1 到 6 之间的随机数。这个位也可以正常工作。

当用户输入“n”来回答“Wanna roll?”这个问题时,我遇到了问题。并且还为第二个问题“现在怎么样?”键入“n”。程序应该一直问用户“现在怎么样?”一遍又一遍,直到他最终破解并输入“y”(此时 Python 给他一个 1 到 6 之间的随机数)。但是,Python 会返回以下内容:

n
How about now? y/n: 

因此它会打印用户的答案(“n”)并再次提出问题。

我不知道如何让 Python 重新提出“现在怎么样?”这个问题。也没有给出用户输入的答案。

如果这是一个明显的问题和/或格式不正确/不清楚,我们深表歉意。我在这里才几周。

提前致谢!

编辑:脚本的预期行为是这样的:

“想滚吗?是/否:”

“现在怎么样?是/否:”

“现在怎么样?是/否:”

“现在怎么样?是/否:”

等等,直到用户回答“现在怎么样?”这个问题使用“y”而不是“n”,此时 Python 应返回 1 到 6 之间的数字,然后询问用户是否要再次滚动。

编辑 2:代码中有错误。当我想输入 .strip() 时,我输入了 .script() - 对此感到抱歉。这不是我的问题的根源,因为我最初编写脚本时确实做对了。抱歉:-(

最佳答案

这个怎么样?

import random
while True:
    roll = input("Wanna roll? y/n: ").strip().lower()
    while roll != "y":
        roll = input("How about now? y/n: ").strip().lower()

    dice = random.randint(1,6)
    print(dice)

它会不断询问用户输入,直到他们回复 y

关于Python 骰子脚本失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42224283/

相关文章:

python - 验证 Unicode 名称

python - CSRF Django,值错误

Python 预定义的 __str__ 方法行为异常

文件中的python脚本命令行参数

Python 对不可变成员变量的引用

python - scipy.optimize.minimize(method='trust-constr') 不会在 xtol 条件下终止

python - 如何从 GCP 中的 Cloud Functions 调用用 Go 编写的 Dataflow 作业

python - 数据框字典选择数据框的名称

python-3.x - 更改 Yellowbrick 可视化颜色

python-3.x - mpi4py 中的共享内存