无法停止程序重复使用"而"循环... Python

时间:2016-07-10 16:26:12

标签: python loops python-3.x

这是我到目前为止所拥有的...如果你运行模块并选择播放它只是无限地重复掷骰子。帮助

answer=input("Would you like to play? Answer Y/N: ")

while answer == "Y" or answer == "y" or answer == "yes": 
    import random
    die=random.randint(1,6)

    dieTwo=random.randint(1,6)    

    if die== 1:
        print("XXXXXXX")
        print("X     X")
        print("X  O  X")
        print("X     X")
        print("XXXXXXX")
        print("You rolled a one...")
    if die== 2:
        print("XXXXXXX")
        print("X   O X")
        print("X     X")
        print("X O   X")
        print("XXXXXXX")
        print("You rolled a two...")
    if die== 3:
        print("XXXXXXX")
        print("X   O X")
        print("X  O  X")
        print("X O   X")
        print("XXXXXXX")
        print("You rolled a three...")
    if die== 4:
        print("XXXXXXX")
        print("X O O X")
        print("X     X")
        print("X O O X")
        print("XXXXXXX")
        print("You rolled a four...")
    if die== 5:
        print("XXXXXXX")
        print("X O O X")
        print("X  O  X")
        print("X O O X")
        print("XXXXXXX")
        print("You rolled a five...")
    if die== 6:
        print("XXXXXXX")
        print("X O O X")
        print("X O O X")
        print("X O O X")
        print("XXXXXXX")
        print("You rolled a six...")

    if dieTwo==1:
        print("XXXXXXX")
        print("X     X")
        print("X  O  X")
        print("X     X")
        print("XXXXXXX")
        print("and a one")
    if dieTwo==2:
        print("XXXXXXX")
        print("X   O X")
        print("X     X")
        print("X O   X")
        print("XXXXXXX")
        print("and a two")
    if dieTwo==3:
        print("XXXXXXX")
        print("X   O X")
        print("X  O  X")
        print("X O   X")
        print("XXXXXXX")
        print("and a three")
    if dieTwo==4:
        print("XXXXXXX")
        print("X O O X")
        print("X     X")
        print("X O O X")
        print("XXXXXXX")
        print("and a four")
    if dieTwo==5:
        print("XXXXXXX")
        print("X O O X")
        print("X  O  X")
        print("X O O X")
        print("XXXXXXX")
        print("and a five")
    if dieTwo==6:
        print("XXXXXXX")
        print("X O O X")
        print("X O O X")
        print("X O O X")
        print("XXXXXXX")
        print("and a six")
print("")

if answer=="N" or answer=="n" or answer=="no":
    print("Thank you for playing.")

2 个答案:

答案 0 :(得分:2)

为什么你会认为这只是一个无限循环?你有一个while循环检查你的病情,这种情况永远是真的,因为你永远不会改变answer

您还可以创建一个打印骰子的功能,而不是使用or,如果您想在有这样条件的地方更专业,可以使用answer in ("Y", "y", "yes")作为示例。< / p>

答案 1 :(得分:0)

由于您只从用户那里获取输入answer,因此在整个程序执行期间其值保持不变。 因此,如果您通过whileTrue'Y''y'谓词始终会评估为'yes'

我建议你每次迭代时都要输入。 这样的事情可能会有所帮助:

while 1:

answer=input("Would you like to play? Answer Y/N: ")
if answer in ('Y', 'y', 'yes'):
# play the game
else:
# stop the game

另一个建议:不要在循环内导入。
尝试将所有import语句放在脚本的顶部。

快乐的编码!