近來在學習Celery
包的時候發現自己對于python
中的random()
模塊真是知之甚少。
-
random.random()
:
用于生成一個0到1的隨機符點數: 0 <= n < 1.0
>>> random.random()
0.42995943567257877
-
random.randint()
:
用于生成一個隨機整數
>>> random.randint(10, 50)
22
-
random.choice()
random.choice(seqence)
從序列中獲取一個隨機元素。
>>> random.choice([1,2,3,4])
3
>>> random.choice([1,2,3,4])
1
-
random.uniform()
random.uniform(a, b)
, 用于生成一個指定范圍內的隨機符點數,其中一個是上限,一個是下限。如果a < b,則生成的隨機數n: a<= n <= b。如果 a > b, 則 b <= n <= a。
>>> random.uniform(20,10)
16.260450186509555
>>> random.uniform(10,20)
19.315077074480815
-
random.shuffle
random.shuffle(x[, random])
,用于將一個列表中的元素打亂。
>>>p=['This','is','python']
>>>random.shuffle(p)
>>>p
['This','python', 'is']
-
random.sample
random.sample(sequence, k)
,從指定序列中隨機獲取指定長度的片斷。sample
函數不會修改原有序列。
>>>list1=[1,2,3,4,5,6,7,8,9]
>>>p=random.sample(list1,3)
>>>p
[7, 8,3]
-
random.randrange
random.randrange([start], stop,[, step])
,從指定范圍內,按指定基數遞增的集合中獲取一個隨機數random.randrange(10, 100, 2)
在結果上與random.choice(range(10, 100, 2)
等效。
>>>random.randrange(10)
3
>>>random.randrange(1,12,2)
11
- 生成8位長度的隨機數字+字符的字符串
salt = ''.join(random.sample(string.ascii_letters + string.digits, 8))
print salt