Python 进阶 (三十)Python3 实现随机数
![Python进阶(三十)Python3实现随机数](https://static001.geekbang.org/infoq/72/724654da76d7ecba4e3201b1546ab11e.webp)
一、random 随机函数
random
是用于生成随机数的,可以利用它随机生成数字或者选择字符串。
random.seed(x)
改变随机数生成器的种子seed
。一般不必特别去设定seed
,Python
会自动选择seed
。random.random()
用于生成一个随机浮点数 n,0 <= n < 1
random.uniform(a,b)
用于生成一个指定范围内的随机浮点数,生成的随机整数a<=n<=b
;random.randint(a,b)
用于生成一个指定范围内的整数,a 为下限,b 为上限,生成的随机整数 a<=n<=b;若 a=b,则 n=a;若 a>b,报错random.randrange([start], stop [,step])
从指定范围[start,stop)内,按指定基数递增的集合中获取一个随机数,基数缺省值为 1random.choice(sequence)
从序列中获取一个随机元素,参数sequence
表示一个有序类型,并不是一种特定类型,泛指list
,tuple
,字符串等。random.shuffle(x[,random])
用于将一个列表中的元素打乱(洗牌),会改变原始列表。random.sample(sequence,k)
从指定序列中随机获取 k 个元素作为一个片段返回,不会改变原有序列。
但是,有一点需要注意:python random 是伪随机数。
那么,可以借用 python random 实现真随机数吗?答案是 No。所谓真随机数,是要求根据绝对随机事件产生的数,也就是说要求要有一个无因果关系的随机事件,那么,这其实只存在与哲学领域……
目前的随机数产生都是统计上的随机,因为随机源都是自然事件,顶天了算是混沌变量,绝对的无因果大概是不存在的。
不过统计随机基本上都够用了吧……还是老老实实的用 random 模块吧....
二、代码演示
执行结果:
![](https://static001.geekbang.org/infoq/21/212e1578ae6f55649f2dc787786a7b49.png)
版权声明: 本文为 InfoQ 作者【No Silver Bullet】的原创文章。
原文链接:【http://xie.infoq.cn/article/70c313b3855d1653dcef7a689】。文章转载请联系作者。
评论