gkket 发表于 2019-11-13 20:02:47

玩转 Python 中的随机数

http://p8.qhimg.com/t0110c43d01982482a4.jpg?size=640x479开发中我们经常遇到需要随机数的场景,比如为了用户密码更安全我们有时会加盐,也就是将用户原密码连接上一串随机字符然后加密保存,又比如我们可能需要随机展示某张图片等等。今天,我们就来理一理 Python 中的随机数的玩法,当然,这里只涉及标准库。随机生成 0 到 1 之间的浮点数random.random() 方法会返回 http://p1.qhimg.com/t0167d854d531e70ae1.jpg?size=640x361随机生成 a 与 b 之间的整数使用 random.randint(a , b) 方法,你可以生成一个 a 与 b 之间的随机整数,也就是 。http://p2.qhimg.com/t01d24a14e4a91b03c9.jpg?size=640x356当然,如果你想要生成的随机整数不会包含 b ,也即 http://p9.qhimg.com/t01910b48e8ab1d5b8e.jpg?size=640x345生成 a 与 b 之间的浮点数如果你需要生成 之间的随机浮点数,那么 random.uniform(a, b) 会满足你的需求。http://p9.qhimg.com/t015b295ae5094525bf.jpg?size=640x351从列表中随机取出一个元素如果你想从序列类型中随机取出一个元素,比如列表、元祖、字符串等,random.choice() 是一个不错的选择。http://p1.qhimg.com/t0133971b1bb9508ef6.jpg?size=640x224需要注意的是,该方法需要参数非空,不然会抛出 IndexError 的错误。http://p4.qhimg.com/t01f2c309d50efcb27b.jpg?size=640x231打乱列表中元素的顺序使用 random.shuffle(items) 方法可以帮你把序列 items 中的元素随机打乱。http://p7.qhimg.com/t0159d2984da403d3fb.jpg?size=638x143如果你不想修改原来的列表,你可以使用 copy 模块先拷贝一份原来的列表http://p8.qhimg.com/t010c6bc9e9082fdde5.jpg?size=640x251从列表中随机取出 n 个元素使用 random.sample(items, n) 方法可以从序列 items 中随机取出 n 个元素。
http://p3.qhimg.com/t012e81ab0d13a30e83.jpg?size=640x227生成密码学安全的伪随机数什么是密码学安全的伪随机数,请看维基百科( http://dwz.cn/7JhRN5 )。不过暂时不需要深入的话,理解为比普通随机数更随机的技术就好。如果你需要生成密码学安全的随机数,你可以通过 random.SystemRandom 类实现。random.SystemRandom 实例化后的对象拥有与 random 类似的方法。http://p3.qhimg.com/t010b3a1d6fed6ea6d8.jpg?size=640x553http://p2.qhimg.com/t01d108261464a0d181.jpg?size=640x290如果 Python 版本在 3.6 及以上,可以使用 secrets 模块通过 secrets 模块,同样也能生成密码学安全的随机数。并且,利用它生成一些特定的秘钥特别方便。

wangzhaolost 发表于 2019-11-13 22:52:17

激动人心,无法言表!

黄佰安 发表于 2020-10-13 06:26:38

无回帖,不论坛,这才是人道。

wx_JaXBe8Sb 发表于 2025-11-15 03:27:53

打卡路过,支持优质原创内容~

初中 发表于 2025-11-16 22:56:01

浅蹲一个后续,楼主更新踢我一下

winny997 发表于 2025-11-17 08:27:40

理性围观,感觉大家说的都有道理~

bioler 发表于 2025-11-17 08:44:12

楼主太会说了,字字句句都在理~

ahljj 发表于 2025-11-17 08:48:12

不请自来,就想夸一句:太顶了!

南湖电子1234 发表于 2025-11-17 08:53:04

占个楼慢慢看,先马克一下
楼主辛苦啦,期待下一篇分享

黄正胜 发表于 2025-11-17 08:53:25

笑不活了,评论区比正文还精彩
已转发给朋友,一起快乐一下
页: [1] 2
查看完整版本: 玩转 Python 中的随机数