2017-10-10 7 views
1

私は基本的に1から6までのミニプロジェクトを選択するプロジェクトをやっています。(Python)whileループは私のrandom_numberを壊しています

ほとんどの場合、動作します。しかし、それがループバックすると、同じ数を繰り返すように見えます。

ここで私は

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ループ。 –

+1

あなたはダイスを一回転がしているだけです。なぜ違うのでしょうか? –

答えて

2

あなたはループの外で、Random_Number 1時間を生成しています。あなたは一度だけ乱数を生成するので この

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

このコードでは、乱数を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はありません。

状況はまったく同じです: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 
関連する問題