直截了当的方法有什么问题?

>>> import random

>>> random.randint(100000000000,999999999999)

544234865004L

如果你想要它带有前导零,你需要一个字符串.

>>> "%0.12d" % random.randint(0,999999999999)

'023432326286'

编辑:

我自己解决这个问题的方法是这样的:

import random

def rand_x_digit_num(x, leading_zeroes=True):

"""Return an X digit number, leading_zeroes returns a string, otherwise int"""

if not leading_zeroes:

# wrap with str() for uniform results

return random.randint(10**(x-1), 10**x-1)

else:

if x > 6000:

return ''.join([str(random.randint(0, 9)) for i in xrange(x)])

else:

return '{0:0{x}d}'.format(random.randint(0, 10**x-1), x=x)

测试结果:

>>> rand_x_digit_num(5)

'97225'

>>> rand_x_digit_num(5, False)

15470

>>> rand_x_digit_num(10)

'8273890244'

>>> rand_x_digit_num(10)

'0019234207'

>>> rand_x_digit_num(10, False)

9140630927L

速度计时方法:

def timer(x):

s1 = datetime.now()

a = ''.join([str(random.randint(0, 9)) for i in xrange(x)])

e1 = datetime.now()

s2 = datetime.now()

b = str("%0." + str(x) + "d") % random.randint(0, 10**x-1)

e2 = datetime.now()

print "a took %s, b took %s" % (e1-s1, e2-s2)

速度测试结果:

>>> timer(1000)

a took 0:00:00.002000, b took 0:00:00

>>> timer(10000)

a took 0:00:00.021000, b took 0:00:00.064000

>>> timer(100000)

a took 0:00:00.409000, b took 0:00:04.643000

>>> timer(6000)

a took 0:00:00.013000, b took 0:00:00.012000

>>> timer(2000)

a took 0:00:00.004000, b took 0:00:00.001000

它告诉我们的是什么:

对于大约6000个字符以下的任何数字,我的方法更快 – 有时快得多,但对于更大的数字,arshajii建议的方法看起来更好.

python生成50个随机数_Python:如何生成12位随机数?相关推荐

  1. http://www.dewen.net.cn/q/15800/php如何生成十进制00到20之间的2位随机数

    http://www.dewen.net.cn/q/15800/php如何生成十进制00到20之间的2位随机数 parkshine 1 票 parkshine 8 比如随机数是0, 就是00 随机数是 ...

  2. python随机生成10个数_python得到一个10位随机数的方法及拓展

    https://blog.csdn.net/qq_33324608/article/details/78866760 无意中看到一个写10位随机数的方法,很有想法,然后就从学了一下随机数,相关东西都记 ...

  3. python制作中文词云_Python如何生成词云(详解)

    前言 今天教大家用wrodcloud模块来生成词云,我读取了一篇小说并生成了词云,先看一下效果图: 效果图一: 效果图二: 根据效果图分析的还是比较准确的,小说中的主人公就是"程理" ...

  4. python3 随机数模块 得到一个10位随机数

    10位随机数 import random print ''.join(str(random.choice(range(10))) for _ in range(10)) 解析: ".join ...

  5. python如何生成随机数_python如何生成随机数

    如果你对在Python生成随机数与random模块中最常用的几个函数的关系与不懂之处,下面的文章就是对Python生成随机数与random模块中最常用的几个函数的关系,希望你会有所收获,以下就是这篇文 ...

  6. python 验证码图片 模拟登录_Python 模拟生成动态产生验证码图片的方法

    模拟动态产生验证码图片 模拟生成验证码,首先要做的是生成随机的字母,然后对字母进行模糊处理.这里介绍一下 Python 提供的 Pillow 模块. Pillow PIL:Python Image L ...

  7. python批量生成图片并保存_Python批量生成幻影坦克图片实例代码

    前言 说到幻影坦克,我就想起红色警戒里的-- 幻影坦克(Mirage Tank),<红色警戒2>以及<尤里的复仇>中盟军的一款伪装坦克,盟军王牌坦克之一.是爱因斯坦在德国黑森林 ...

  8. python生成器杨辉三角_python 生成器生成杨辉三角的方法(必看)

    用Python写趣味程序感觉屌屌的,停不下来 #生成器生成展示杨辉三角 #原理是在一个2维数组里展示杨辉三角,空的地方用0,输出时,转化为' ' def yang(line): n,leng=0,2* ...

  9. 如何用python生成可执行程序必须经过_python怎么生成可执行文件

    .py文件:对于开源项目或62616964757a686964616fe58685e5aeb931333363393664者源码没那么重要的,直接提供源码,需要使用者自行安装Python并且安装依赖的 ...

最新文章

  1. Error: Cannot find module ‘express‘
  2. python数字处理技巧(2): Numpy、矩阵运算、随机、字符串日期
  3. linux上怎么修改hostname
  4. 南师大计算机语言学,南师大(语言学,文字学,文献学专业备考建议)
  5. php --魔术常量 /魔术方法
  6. BugkuCTF-MISC题善用工具
  7. 【MySQL】基于MySQL的SQL核心语法实战演练(一)
  8. css样式表中的样式覆盖顺序(转)
  9. Keras与PyTorch全方位比较 哪一个深度学习框架更适合初学者?
  10. 兼容所有浏览器的设为首页收藏本站js代码,推荐使用
  11. 如何在Delphi TImageList 中使用 透明 png 图标
  12. [CodeForces 372A] Counting Kangaroos is Fun
  13. linux文件移出目录命令_Linux移动文件命令F01
  14. MATLAB利用ode求解二阶微分方程
  15. SSD目标检测网络tensorRT推理【附代码】
  16. Unity分屏之使用TUIO实现互动投影
  17. python调用鼠标驱动_python_selenium_鼠标操作
  18. flink集成springboot案例_集成-Apache Flink+Spring Boot
  19. Windows Shell 编程 第十章
  20. 工业机器人(9)-- Matlab机器人工具箱之创建单臂/双臂机器人SDH/MDH方法

热门文章

  1. 用例设计方法及其覆盖率
  2. BIOS英文报错详解;你虽会做系统,但你会看BIOS英文报错吗,仅供大家参考学习。...
  3. Sping WebSocket SockJS使用
  4. bash的常见命令及文章查看命令
  5. Knockout应用开发指南 第六章:加载或保存JSON数据
  6. c# Bitmap byte[] Stream 文件相互转换
  7. eAccelerator和ionCube安装不上的解决办法
  8. Oracle系统表查询
  9. hdu 1075 (字典树映射)
  10. 监控Oracle性能的SQL