2017-10-10 78 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