Python中的random模块
Python中的random模块用于生成随机数,下面介绍一下random模块中最常用的几个函数。
random.random()
random.random()用于生成一个0到1的随机符点数: 0 <= n < 1.0
示例:
>>> import random >>> print random.random() 0.988513459119 >>> print random.random() 0.05796337431 >>> print random.random() 0.756540608692
random.uniform(a,b)
random.uniform的函数原型为:random.uniform(a, b),用于生成一个指定范围内的随机符点数,两个参数其中一个是上限,一个是下限。
如果 a < b,则生成的随机数n: a <= n <= b
如果 a > b, 则 b <= n <= a
示例:
>>> print random.uniform(10,20) 13.4004322889 >>> print random.uniform(20,10) 18.0856399379 >>> print random.uniform(10,20) 16.9377751212 >>> print random.uniform(20,10) 12.8396872041
random.randint(a,b)
random.randint(a, b),用于生成一个指定范围内的整数。
其中参数a是下限,参数b是上限,生成的随机数n: a <= n <= b
示例:
>>> print random.randint(10,20) 15 >>> print random.randint(15,20) 18 >>> print random.randint(10,20) 11 >>> print random.randint(15,20) 20
random.randrange(start, stop, step)
random.randrange([start], stop[, step]),从指定范围内按指定基数递增的集合中获取一个随机数,stop为上限(不包含),即半开闭区间。
例如:
random.randrange(10, 100, 2),结果相当于从[10, 12, 14, 16, ... 96, 98]序列中获取一个随机数。random.randrange(10, 100, 2),在结果上与 random.choice(range(10, 100, 2) 等效。
示例:
>>> print random.randrange(10, 20, 5) 15 >>> print random.randrange(10, 20, 5) 10 >>> print random.choice(range(10, 20, 5)) 15 >>> print random.choice(range(10, 20, 5)) 10
random.choice(sequence)
random.choice(sequence),从序列中获取一个随机元素,参数sequence表示一个有序类型。
sequence在python不是一种特定的类型,而是泛指一系列的类型,例如 list, tuple, 字符串都属于sequence。
示例:
>>> print random.choice('ithomer.net') t >>> print random.choice('ithomer.net') h >>> print random.choice(['blog','ithomer','net']) ithomer >>> print random.choice(['blog','ithomer','net']) net >>> print random.choice(('blog','ithomer','net')) net >>> print random.choice(('blog','ithomer','net')) blog
random.shuffle(x, random)
random.shuffle(x[, random]),用于将一个列表中的元素打乱。
示例:
>>> l = ['blog', 'ithomer', 'net'] >>> random.shuffle(l) >>> print l ['ithomer', 'blog', 'net']
random.sample(sequence,k)
random.sample(sequence, k),从指定序列中随机获取指定长度的片断,sample函数不会修改原有序列。
示例:
>>> l = [1,2,3,4,5,6,7,8,9,10] >>> slice = random.sample(l,5) # 从list中随机获取5个元素,作为一个片断返回 >>> print slice [10, 5, 2, 7, 9] >>> print l [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] # 原有序列并没有改变
random 示例
1) 随机整数
>>> import random >>> random.randint(0,99) 62 >>> random.randint(0,99) 91
2) 随机选取0到100间的偶数
>>> import random >>> random.randrange(0, 101, 2) 82 >>> random.randrange(0, 101, 2) 66
3) 随机浮点数
>>> import random >>> random.random() 0.8765578572194214 >>> random.uniform(1, 10) 2.9600354386047796
4) 随机字符
>>> import random >>> random.choice('abcdefg!@#$%^&*') 'b' >>> random.choice('abcdefg!@#$%^&*') '$'
5) 选取特定数量的字符
>>> import random >>> random.sample('abcdefg!@#$%^&*', 3) ['@', 'f', '$'] >>> random.sample('abcdefg!@#$%^&*', 3) ['f', 'a', '@']
6) 选取特定数量的字符组成新字符串
>>> import random >>> import string >>> string.join(random.sample('abcdefg!@#$%^&*', 3)) '& # $' >>> string.join(random.sample('abcdefg!@#$%^&*', 3)).replace(" ","") '!b*'
7) 随机选取字符串
>>> import random >>> random.choice(['blog', 'ithomer', 'net']) 'net' >>> random.choice(['blog', 'ithomer', 'net']) 'blog'
8) 洗牌生成随即顺序
>>> import random >>> l = [1,2,3,4,5,6] >>> random.shuffle(l) >>> l [3, 5, 2, 1, 4, 6] >>> l [3, 5, 2, 1, 4, 6]
版权所有: 本文系米扑博客原创、转载、摘录,或修订后发表,最后更新于 2014-12-27 19:13:20
侵权处理: 本个人博客,不盈利,若侵犯了您的作品权,请联系博主删除,莫恶意,索钱财,感谢!
转载注明: Python中的random模块 (米扑博客)