1. 程式人生 > >python得到一個10位隨機數的方法及拓展

python得到一個10位隨機數的方法及拓展

無意中看到一個寫10位隨機數的方法,很有想法,然後就從學了一下隨機數,相關東西都記一下

直接上程式碼
import random
print ''.join(str(random.choice(range(10))) for _ in range(10))

解析:
”.join():作用是將引號裡內容加入到括號裡元素之間,是字串操作函式。引號裡元素為字串或數字,就是寫啥就是啥,括號裡元素只能是str和unicode,unicode說白了就是中文。如果想用列表、元祖、數字等,都要前面加str轉義。
例:
b=('a','b','c')
print 'zz'.join(str(b) for ad in range(3))


結果就是:
(u’a’, u’b’, u’c’)zz(u’a’, u’b’, u’c’)zz(u’a’, u’b’, u’c’)
列表同理,數字例子如下

print 'zz'.join(str(123) for ad in range(3))

結果為:
123zz123zz123

random.choice():作用是選取一個隨機字元,括號裡只能是元祖、列表、字串,如果使用數字,要加str轉義。
例:
import random
print random.choice('abc123')

結果返回字串裡一個元素

for _ in range(10):作用就是迴圈10次,_無特殊含義,用任何字元替代都可以。

以下內容為random函式拓展轉載

1.random.uniform()用於生成
用於生成一個指定範圍內的隨機符點數,兩個引數其中一個是上限,一個是下限。哪個引數寫前面都可以。
例:
print random.uniform(10, 20)
print random.uniform(20, 10)

結果如下,都是10到20之間的浮點數
18.7356606526
12.5798298022

2.random.randint
用於生成一個指定範圍內的整數。其中引數a是下限,引數b是上限,Python生成隨機數
print random.randint(12, 20) #生成的隨機數n: 12 <= n <= 20
print random.randint(20, 20) #結果永遠是20


print random.randint(20, 10) #該語句是錯誤的。
下限必須小於上限。

3.random.randrange
從指定範圍內,按第三個引數遞增
例:
隨機選取0到100間的偶數:
import random
random.randrange(0, 101, 2)

結果為
42

4.random.random()
用於生成一個0到1之間的隨機浮點數:
import random
random.random()

結果:
0.85415370477785668
random.uniform是指定範圍的隨機浮點數
random.uniform(1, 10)

5.4221167969800881

5.random.choice()
獲取一個隨機字元:
import random
random.choice('abcdefg&#%^*f')

結果:
‘d’

6.random.sample()
多個字元中選取特定數量的字元:
import random
random.sample('abcdefghij',3)

結果:
[‘a’, ‘d’, ‘b’]

兩個例子:
多個字元中選取特定數量的字元組成新字串:

import random
import string
string.join(random.sample([‘a’,’b’,’c’,’d’,’e’,’f’,’g’,’h’,’i’,’j’], 3)).r
eplace(” “,”“)
‘fih’

隨機選取字串:

import random
random.choice ( [‘apple’, ‘pear’, ‘peach’, ‘orange’, ‘lemon’] )
‘lemon’

7.random.shuffle
洗牌:
import random
items = [1, 2, 3, 4, 5, 6]
random.shuffle(items)
items
[3, 2, 5, 6, 4, 1]