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() 来得简洁)。不过呢...都是方法,这只是一些自己的探索,哈哈。感谢阅读~~

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值