Python 骰子模拟器,为什么是运行 停不下来?

Python dice simulator, why it is running without stopping?

import random

print("This is a dice simulator.")

x = "y"

while x == "y":
    number = random.randint(1,6)

    if number == 1:
        print("------------")
        print("|          |")
        print("|     0    |")
        print("|          |")
        print("------------")

    if number == 2:
        print("------------")
        print("|         0|")
        print("|          |")
        print("|0         |")
        print("------------")

    if number == 3:
        print("------------")
        print("|         0|")
        print("|     0    |")
        print("|0         |")
        print("------------")

    if number == 4:
        print("------------")
        print("|0        0|")
        print("|          |")
        print("|0        0|")
        print("------------")

    if number == 5:
        print("------------")
        print("|0        0|")
        print("|     0    |")
        print("|0        0|")
        print("------------")

    if number == 6:
        print("------------")
        print("|0        0|")
        print("|0        0|")
        print("|0        0|")
        print("------------")

x = input("Press y to roll again")

我不明白为什么我的代码会无限循环。

x = input("Press y to roll again")while 循环之外被询问,因此永远不会到达代码。将其添加到 while:

import random

print("This is a dice simulator.")

x = "y"

while x == "y":
    number = random.randint(1,6)

    if number == 1:
        print("------------")
        print("|          |")
        print("|     0    |")
        print("|          |")
        print("------------")

    if number == 2:
        print("------------")
        print("|         0|")
        print("|          |")
        print("|0         |")
        print("------------")

    if number == 3:
        print("------------")
        print("|         0|")
        print("|     0    |")
        print("|0         |")
        print("------------")

    if number == 4:
        print("------------")
        print("|0        0|")
        print("|          |")
        print("|0        0|")
        print("------------")

    if number == 5:
        print("------------")
        print("|0        0|")
        print("|     0    |")
        print("|0        0|")
        print("------------")

    if number == 6:
        print("------------")
        print("|0        0|")
        print("|0        0|")
        print("|0        0|")
        print("------------")

    x = input("Press y to roll again")

Test online!

好吧,while x == "y":您的 x 在循环开始前设置为 "y",并且在 循环期间 永远不会改变.

您可能希望将最后一行更改为 循环内,在 print 语句之后。

因此修复非常简单:

将最后一行更改为:

x = input("Press y to roll again")

    x = input("Press y to roll again")