2017-10-12 45 views
0

我試圖運行此代碼:我隨機整數只返回4

import random 
import time 


random_int = random.randrange(1, 6) 
time.sleep(.1) 
for i in range(1, 101): 
    print(i) 
    print("Random: ", random_int) 
    time.sleep(random_int) 

但每次我運行它時,random_int總是返回其選擇的第一個數字,所以:

1 
Random: 4 
2 
Random: 4 
3 
Random: 4 
4 
Random: 4 
5 
Random: 4 
6 
Random: 4 
7 
Random: 4 
8 
Random: 4 
9 
Random: 4 
10 
Random: 4 

過程結束,退出代碼1

或者:

1 
Random: 2 
2 
Random: 2 
3 
Random: 2 
4 
Random: 2 
5 
Random: 2 
6 
Random: 2 
7 
Random: 2 
8 
Random: 2 
9 
Random: 2 
10 
Random: 2 

Process finished with exit code 1 

等等請幫助 不會讓我提出這個問題,沒有更多的文字,所以這是文本...過得怎樣?你在做什麼?不要回答...現在等待!回答我的問題,但不是這些問題。

+4

「我翻了一個骰子,看了100遍,每次都說了4次!那麼,重新擲骰子。 – user2357112

+0

你打了幾次'randrange'? ;) – alfasin

+2

[真實](https://xkcd.com/221/)背後的原因。 – Reti43

回答

0

我會回答,因爲我一直在絕望
去關@ user2357112的面前:
您存儲random_int = random.randrange(1,6)一旦
環路有效地做什麼,但引用你先存儲的random_int。
爲了進行這種更改,您需要更改random_int中的值,最好將random_int = random.randrange(1,6)放在for循環中,每次更改它。
我希望清理一下!

0

你要「滾」你的模具:

import random 
import time 

time.sleep(.1) 

for i in range(1, 101): 
    print(i) 
    random_int = random.randrange(1, 6) 
    print("Random: ", random_int) 
    time.sleep(random_int) 

randrange生成一個隨機的,所以,如果你想生成一個新的每一次,你必須調用它。

1

你需要調用循環內的隨機函數

import random 
import time 


time.sleep(.1) 
for i in range(1, 101): 
    print(i) 
    random_int = random.randrange(1, 6) 
    print("Random: ", random_int) 
    time.sleep(random_int) 

你在做什麼是打印可變random_int它已經分配

0

的問題是發生的分配線的值(第4線)在循環之外。 您基本上是先分配random_int,然後再次打印它而不更改變量。

import random 
import time 

random_int = random.randrange(1, 6) 
time.sleep(.1) 
for i in range(1, 101): 
    print(i) 
    print("Random: ", random_int) 
    time.sleep(random_int) 

爲了解決這個問題,把「random_int = random.randrange(1,6)」的環的內側,從而將其分配新值的每一個環路。像這樣

import random 
import time 


time.sleep(.1) 
for i in range(1, 101): 
    random_int = random.randrange(1, 6) 
    print(i) 
    print("Random: ", random_int) 
    time.sleep(random_int)