Python骰子脚本失败

时间:2017-02-14 10:53:24

标签: 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要求"想要滚动?"并且,如果用户输入" y",Python应该返回1到6之间的随机数。这个位工作正常。

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

我遇到问题的地方是用户输入" n"对于这个问题"想要滚动?"并且还键入" n"对于第二个问题"现在怎么样?"该程序应该不断询问用户"现在怎么样?"一遍又一遍,直到他最终破裂和类型" y" (此时Python给了他1到6之间的随机数)。然而,会发生什么是Python返回:

n
How about now? y/n: 

因此,它会打印用户的答案(" n")以及再次提问。

我无法弄清楚如何让Python重新提出问题"现在怎么样?"没有给出用户输入的答案。

如果这是一个明显的问题和/或格式不正确/不清楚,请道歉。我已经在这几个星期了。

提前致谢!

编辑:脚本的预期行为如下:

"想滚? y / n:"

"现在怎么样? y / n:"

"现在怎么样? y / n:"

"现在怎么样? y / n:"

依此类推,直到用户回答问题"现在怎么样?"用" y"而不是" n",此时Python应返回1到6之间的数字,然后询问用户是否想再次滚动。

编辑2:代码中有错误。当我打算键入.strip()时,我放了.script() - 对不起。这不是我的问题的根源,因为我在最初编写脚本时确实做到了。对不起: - (

1 个答案:

答案 0 :(得分:1)

这个怎么样?

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之前,它会一直询问用户输入内容。