(Python) while 循环破坏了我的 random_number

(Python) while loop is breaking my random_number

所以我正在做一个项目,它基本上从 1 - 6 中选择一个随机数作为一个迷你项目。

在大多数情况下,它是有效的。但是当它循环回来时,它似乎继续滚动相同的数字。

这是我的意思的截图

如您所见,骰子点数一直保持不变。你能看出我的代码有什么问题吗?

# Useful module for selecting random numbers
import random

# Loop program back to here once user presses anything
loop = 1

#Chooses random number between 1 - 6
Random_Number = (random.choice([1,2,3,4,5,6]))

while (loop < 10):
    #Printing what the user sees
    print ("===============================")
    print ("Your random dice number is:", Random_Number)
    input("Press any key to roll again")
    print ("===============================")

    #looping back to "loop = 1"
    loop = loop + 1

此代码选择随机数一次,然后只打印 10 次。如果你每次都想要不同的随机数,你应该将随机选择移动到循环内:

while (loop < 10):
    #Chooses random number between 1 - 6
    Random_Number = (random.choice([1,2,3,4,5,6]))

    #Printing what the user sees
    print ("===============================")
    print ("Your random dice number is:", Random_Number)
    input("Press any key to roll again")
    print ("===============================")

    #looping back to "loop = 1"
    loop = loop + 1

你只设置了一次 Random_Number 的值,然后在每个循环中显示它。

固定

# Useful module for selecting random numbers
import random

# Loop program back to here once user presses anything
loop = 1

#Chooses random number between 1 - 6
#Random_Number = (random.choice([1,2,3,4,5,6]))

while (loop < 10):
    #Printing what the user sees
    print ("===============================")
    print ("Your random dice number is:", (random.choice([1,2,3,4,5,6])))
    #input("Press any key to roll again")
    print ("===============================")

    #looping back to "loop = 1"

您正在循环外生成 Random_Number 一次。 尝试这样的事情

while (loop < 10):
    Random_Number = (random.choice([1,2,3,4,5,6]))
    #Printing what the user sees
    print ("===============================")
    print ("Your random dice number is:", Random_Number)
    input("Press any key to roll again")
    print ("===============================")

    loop = loop + 1

因为你只生成一次随机数。 应该是

...
while (loop < 10):
    Random_Number = (random.choice([1,2,3,4,5,6]))
....

也不要用大写字母命名变量 Random_Number 使用 random_number

您需要了解 Python(和类似的语言)存储值,而不是表达式。如果写a = 2 + 2,变量a中没有加法,也没有2;只有数字 4。

你的情况完全一样:你以为你定义了 Random_Number 作为旁边表达式的别名,实际上你只存储了一个数字。

您当然可以通过在循环内调用 random.choice() 来解决问题——因为已经建议了大约 10 个答案。但要完成您 想要 要做的事情,请定义一个以您指定的方式选择数字的函数。每次调用函数时都会执行函数体。

def random_number():
    return random.choice([1,2,3,4,5,6])

while (loop < 10):
    print("you rolled", random_number())
    loop += 1

如果您不想在每次迭代时都重新定义一个随机数:

# Useful module for selecting random numbers
import random

# Loop program back to here once user presses anything
loop = 1

#Chooses random number between 1 - 6
Random_Number = lambda : random.choice([1,2,3,4,5,6])

while (loop < 10):
    #Printing what the user sees
    print ("===============================")
    print ("Your random dice number is:", Random_Number())
    print ("===============================")

    #looping back to "loop = 1"
    loop = loop + 1