2017-10-10 130 views
1

所以我正在做一个项目,它基本上从1 - 6中选择一个随机数作为一个迷你项目。(Python)while循环正在破坏我的随机数

在大多数情况下,它的工作原理。但是当它回圈时,它似乎继续滚动相同的数字。

这里是我的意思

enter image description here

截图正如你所看到的,骰子数量不断滚动相同。你能看到我的代码中有什么问题吗?

# 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 
+0

放'RANDOM_NUMBER =(random.choice([1,2,3,4,5,6] ))'while while while循环。 –

+1

你只会一次死亡;为什么它会不同? –

回答

2

您正在生成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 
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 
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" 
0

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

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

而且不名的变量有上字母代替RANDOM_NUMBER使用RANDOM_NUMBER

1

您需要了解的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 
0

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

# 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