2011-07-28 38 views
7

如何在python中定義0到1之間的小數範圍? Python中的Range()函數只返回int值。我的代碼中有一些變量,其編號在0到1之間變化。我很困惑我如何將它放在代碼中。謝謝如何創建0到1之間的隨機小數的範圍

我會添加更多我的問題。沒有可生成小數值的步長或任何增量值。我必須使用一個可能具有從0到1的值的變量。它可以是任何值。但程序應該知道它的範圍從0到1的邊界。我希望我明確自己。謝謝

http://docs.python.org/library/random.html

+1

你必須更具體。從0到1可以在0和無窮大之間。步驟是什麼? – Jacob

+0

謝謝,但沒有步驟。它可以是0和1之間的任何值。我只需要一個變量,其值在0和1之間。 – zingy

+2

@eryksun是的,我需要一個隨機範圍。我應該把這個詞隨機。 – zingy

回答

9

如果您正在尋找隨機數的0和1之間的名單,我認爲你可能有一個很好用的random模塊的

>>> import random 
>>> [random.random() for _ in range(0, 10)] 
[0.9445162222544106, 0.17063032908425135, 0.20110591438189673, 
0.8392299590767177, 0.2841838551284578, 0.48562600723583027, 
0.15468445000916797, 0.4314435745393854, 0.11913358976315869, 
0.6793348370697525] 
+0

是的,這將工作。感謝 – zingy

0

它看起來像列表解析會相當有用這裏。

mylist = [x/n for x in range(n)] 

這樣的事情?我的Python生鏽了。

+0

我認爲這會奏效。謝謝 – zingy

+1

如果你想要一個0的列表,那麼是的,它會很好地工作。整數除法ftl! – geoffspear

+0

我認爲,在最近的Python版本中,這實際上工作正常。你不必使用// b來獲得整數除法嗎?請檢查這個,Wooble。 – Patrick87

5
for i in range(100): 
    i /= 100.0 
    print i 

另外,請看decimal

1
def float_range(start, end, increment): 
    int_start = int(start/increment) 
    int_end = int(end/increment) 
    for i in range(int_start, int_end): 
     yield i * increment 
+0

謝謝,但沒有特別的增量。它只是0和1之間的一個隨機值。 – zingy

0
>>> from decimal import Decimal 
>>> [Decimal(x)/10 for x in xrange(11)] 
[Decimal("0"), Decimal("0.1"), Decimal("0.2"), Decimal("0.3"), Decimal("0.4"), Decimal("0.5"), Decimal("0.6"), Decimal("0.7"), Decimal("0.8"), Decimal("0.9"), Decimal("1")] 

編輯,鑑於馬克隨機的答案評論:

如果你真的不想要一個平穩遞增的範圍,而是0和1之間的隨機數,使用random.random()

+0

@ Wooble hhmm我猜random.random()完美。謝謝 – zingy

0

0之間這將輸出十進制數1與步長0.1

import numpy as np 
mylist = np.arange(0, 1, 0.1) 
+0

有用的功能!但我認爲op改變了這個問題,指定條目需要是隨機的,而arange將會構成一個有序的序列。 – navicore

相關問題