点击上方蓝色字体关注「程序员大咖」
来自:标点符的《Python random模块学习笔记》
链接:https://www.biaodianfu.com/python-random.html
random 模块是Python自带的模块,除了生成最简单的随机数以外,还有很多功能。
random.random()
用来生成一个0~1之间的随机浮点数,范围[0,10
>>> importrandom >>> random.random() 0.5038461831828231
random.uniform(a,b)
返回a,b之间的随机浮点数,范围[a,b]或[a,b),取决于四舍五入,a不一定要比b小。
>>> random.uniform( 50, 100) 76.81733455677832
>>> random.uniform( 100, 50) 52.98730193316595
random.randint(a,b)
返回a,b之间的整数,范围[a,b],注意:传入参数必须是整数,a一定要比b小
>>> random.randint( 50, 100) 54>>> random.randint( 100, 50) Traceback (most recent call last): File "<pyshell#6>", line 1, in<module> random.randint( 100, 50) File "C:\Python27\lib\random.py", line 242, inrandint returnself.randrange(a, b+ 1) File "C:\Python27\lib\random.py", line 218, inrandrange raiseValueError, "empty range for randrange() (%d,%d, %d)"% (istart, istop, width) ValueError: empty range forrandrange() ( 100, 51, - 49) >>> random.randint( 50.5, 100.6) Traceback (most recent call last): File "<pyshell#7>", line 1, in<module> random.randint( 50.5, 100.6) File "C:\Python27\lib\random.py", line 242, inrandint returnself.randrange(a, b+ 1) File "C:\Python27\lib\random.py", line 187, inrandrange raiseValueError, "non-integer arg 1 for randrange()"ValueError: non-integer arg 1forrandrange()
random.randrang([start], stop[, step])
返回有个区间内的整数,可以设置step。只能传入整数,random.randrange(10, 100, 2),结果相当于从[10, 12, 14, 16, … 96, 98]序列中获取一个随机数。
>>> random.randrange( 100) 58>>> random.randrange( 10, 100, 2) 54
random.choice(sequence)
从序列中随机获取一个元素,list, tuple, 字符串都属于sequence。这里的sequence 需要是有序类型。random.randrange(10,100,2)在结果上与 random.choice(range(10,100,2) 等效。
>>> random.choice(( "stone", "scissors", "paper")) 'stone'>>> random.choice([ "stone", "scissors", "paper"]) 'scissors'>>> random.choice( "Random") 'm'
random.shuffle(x[,random])
用于将列表中的元素打乱,俗称为洗牌。会修改原有序列。
>>> poker = [ "A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K"] >>> random.shuffle(poker) >>> poker [ '4', '10', '8', '3', 'J', '6', '2', '7', '9', 'Q', '5', 'K', 'A']
random.sample(sequence,k)
从指定序列中随机获取k个元素作为一个片段返回,sample函数不会修改原有序列。
>>> poker = [ "A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K"] >>> random.sample(poker, 5) [ '4', '3', '10', '2', 'Q']
上述几个方式是Python常用的一些方法,但是关于随机数还有很多的故事。下回分解~
版权声明
本文仅代表作者观点,不代表xx立场。
本文系作者授权xx发表,未经许可,不得转载。
评论列表
发表评论