2011-03-14 57 views
1

我已經開始學習python了。我正在使用「Python計算科學腳本」一書。我試圖寫一個程序python可以輸出多個隨機數嗎?他們如何可以均勻分佈,也是隨機的?

"Write a script that prints a uniformly distributed random number between 
−1 and 1. The number should be written with four decimals as implied by 
the %.4f format." 

我使用random.uniform來獲得隨機數。但是我找不到一個函數來獲取多個隨機數。例如我的代碼是

print random.uniform(-1, 1) 

它給出了輸出0.238638833859。但我想要一個以上的統一隨機數。任何機構能告訴我一個函數嗎? 還有一件事,我想學習python的腳本目的。那麼有人可以提出一本好書嗎?我想使用python進行網頁自動化。我正在使用的這本書並不理想。請告訴我好書。

+4

如果你想不止一次地做某事,你需要了解「循環」。對於書籍推薦,我建議在http://programmers.stackexchange.com上詢問。 – Gabe 2011-03-14 06:12:52

+0

如果通過調用一次方法可以得到一個隨機數,那麼通過多次調用該方法會阻止您獲取多個數字? – MAK 2011-03-14 06:13:29

+0

但他們不會是均勻分佈或彼此等距離。 – narayanpatra 2011-03-14 06:18:39

回答

3

試一下:

for x in range(4): 
    print '%.4f' % random.uniform(1,-1) 

也許你會喜歡這本書:

Learning Python - 4th Edition by Mark Lutz

+1

我建議不要再開始學習舊的'sprintf'-like語法。更好地使用新的'format'方法:'print「{:.4f}」.format(random.uniform(1,-1))' – 2011-03-14 07:48:42

+0

謝謝,我明白了。 – narayanpatra 2011-03-14 08:09:39

3

難道你要尋找的是這樣的:

[random.uniform(-1+x, 1+x) for x in range(10)]