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]