Python通过内置的random模块即可生成随机数,还可以在指定列表中随机选出一个元素。
使用random.random()
可随机获取一个0到1之间的浮点型数字。
>>> import random >>> random.random() 0.7271454594232384 >>> random.random() 0.8847994682475776 >>> random.random() 0.46199400671485624 >>> random.random() 0.7427160279809695
使用random.randint(x, y)
可获得指定区间(从数字x到数字y之间,x和y包含在内)的一个随机整数。
>>> import random >>> random.randint( 0, 1 ) 0 >>> random.randint( 0, 1 ) 0 >>> random.randint( 0, 1 ) 1 >>> random.randint( 10, 99 ) 13 >>> random.randint( 10, 99 ) 17 >>> random.randint( 10, 99 ) 64
使用random.choice( 有序序列 )
可随机获取有序序列中的某个元素;列表(list)、元组(tuple)、字符串(str)都属于有序序列类型;也可以传入一个生成有序序列的迭代器,例如xrange(100)返回的0-99的迭代器(Iteration)。
>>> import random >>> random.choice( [ 7, 2, 8 ] ) 7 >>> random.choice( ( 0, 1 ) ) 1 >>> random.choice( "zhuanfou" ) 'h' >>> random.choice( xrange(100) ) 21
使用random.sample(有序序列, m)
可从有序序列中随机选择m个元素,以列表的形式返回。(因为被随机筛选出的m个元素的索引是各自不同的,所以m必须小于等于有序序列的长度;若设列有序序列n,其实这就是n个元素中随机选取m个元素的经典问题)
>>> import random >>> random.sample( [ 7, 2, 8 ], 2 ) [2, 7] >>> random.sample( ( 0, 1 ), 1 ) [0] >>> random.sample( "zhuanfou", 6) ['a', 'f', 'u', 'h', 'u', 'n'] >>> random.sample( xrange(100), 10 ) [13, 15, 57, 47, 63, 78, 56, 5, 18, 12]