近来在学习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