利用Python生成随机数 |
您所在的位置:网站首页 › python中随机函数 › 利用Python生成随机数 |
利用 Python 来实现一些小功能是很简单、快捷的,比如...生成随机数。 这里我们会用到两个内置模块: 1. string —— 包含许多有用的常量和类 2. random —— 用于生成随机数 现在有一个简单的需求,就是生成一个任意长度的随机数用作验证码。 在 random 中有多种方法可以帮助我们实现随机数的生成,其中之一就是 random.random() ,它生成一个 [0.0, 1.0) 之间的随机数,我们可以利用它来实现: def random_digits(length): return '{0:06d}'.format(int(random.random() * (10 ** length)))[1:]random_digits() 接收一个参数 length 以决定生成的随机数的长度,因为 random.random() 生成的随机数介于 0 和 1 之间,因此在返回时,我们始终舍弃第一位(因为它总是 0)。不过这个函数有一个弊端,就是生成的随机数长度是有限的,并且生成的随机数可能会有大量重复的数字。因此我们换一种方式实现。 string 模块里包含一个 digits,它是一个常量:'0123456789'(好像这里有点多此一举了,不过既然有,为何还要自己写呢?是吧。其实实际上我是想说 string 里还有很多东西是值得探索的。);random 中还提供了一个 sample() 方法用以提供不重复的随机抽样。因此,另一种实现如下: import random def random_digits(length): return ''.join(random.sample(string.digits * (length / 10 + 1), length))因为 random.sample() 总是从序列中不重复的抽样,因此这种实现可以大大增加数字序列的随机度。 当然,实现随机数的生成还有很多方法,以上方法也许不是最好的实现(比如第一种方法可能还不如使用 random.uniform() 来得简洁)。不过呢...都是方法,这只是一些自己的探索,哈哈。感谢阅读~~ |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |