uuid是128位的全局唯一标识符(univeral unique identifier),通常用32位的一个字符串的形式来表现,自带了uuid模块来进行uuid的生成和管理工作。

python中的uuid模块基于信息如MAC地址、时间戳、命名空间、随机数、伪随机数来uuid。

具体方法有如下几个:

uuid.uuid1()  基于MAC地址,时间戳,随机数来生成唯一的uuid,可以保证全球范围内的唯一性。

uuid.uuid2()  算法与uuid1相同,不同的是把时间戳的前4位置换为POSIX的UID。注意:python的uuid模块中没有uuid2这个方法。

uuid.uuid3(namespace,name)  通过计算一个命名空间和名字的md5散列值来给出一个uuid,保证命名空间中的不同名字具有不同的uuid。但是相同的名字就是相同的uuid了。

namespace的取值如下:

uuid.NAMESPACE_DNS :当指定该命名空间时,参数 name 是一个完全限定的(fully-qualified)域名

uuid.NAMESPACE_URL :当指定该命名空间时,参数name 是一个URL

uuid.NAMESPACE_OID :当指定该命名空间时,参数name 是一个ISO OID

uuid.NAMESPACE_X500:当指定该命名空间时,参数name 是一个DER格式或文本格式的X.500 DN

uuid.uuid4()  通过伪随机数得到uuid,是有一定概率重复的

uuid.uuid5(namespace,name)  和uuid3基本相同,只不过采用的散列算法是sha1

importuuid

name= 'abc'

print(uuid.uuid1())print(uuid.uuid3(uuid.NAMESPACE_DNS,name))print(uuid.uuid3(uuid.NAMESPACE_OID,name))print(uuid.uuid3(uuid.NAMESPACE_URL,name))print(uuid.uuid3(uuid.NAMESPACE_X500,name))print(uuid.uuid4())print(uuid.uuid5(uuid.NAMESPACE_DNS,name))print(uuid.uuid5(uuid.NAMESPACE_OID,name))print(uuid.uuid5(uuid.NAMESPACE_URL,name))print(uuid.uuid5(uuid.NAMESPACE_X500,name))

返回结果:>>> ================================ RESTART ================================

>>>f6bccef8-c7d3-11e9-ac44-2cd974dd0333

5bd670ce-29c8-3369-a8a1-10ce44c7259e

5557cd36-6b67-38ac-83fe-825f5905fc15

874a8cb4-4e91-3055-a476-3d3e2ffe375f

589392cb-93e1-392c-a846-367c45ed1ecc

e1197563-915a-433a-a963-f4ec35ab775c

6cb8e707-0fc5-5f55-88d4-d4fed43e64a8

7697a46f-b283-5da3-8e7c-62c11c03dd9e68661508-f3c4-55b4-945d-ae2b4dfe5db4

53e882a6-63b1-578b-8bf1-8f0878cfa6b7

使用说明:

首先,Python中没有基于DCE的,所以uuid2可以忽略;

其次,uuid4存在概率性重复,由无映射性,最好不用;

再次,若在Global的分布式计算环境下,最好用uuid1;

最后,若有名字的唯一性要求,最好用uuid3或uuid5。

例如:将生成的随机字符串转换为大写,并去掉'-'

importuuid

order_number= str(uuid.uuid1()).upper().replace('-','')

print(order_number)

生成不重复的随机数,还可以利用时间戳生成(微秒级)

importtime

order_number= lambda : int(round(time.time()* 1000*1000))

打印order_number()方法

print(order_number())

python随机生成k个不重复的随机数_使用Python生成不重复的随机值相关推荐

  1. matlab生成不重复的随机数_怎么生成不重复随机数——《超级处理器》应用

    生成随机数,大部分同学都会. 那么,如何生成,不重复的随机数呢?例如,怎么生成20个,100以内的不重复随机数?五秒时间,思考下怎么做? 问题挺简单,做起来还是比较复杂.如果用超级处理器,就非常方便, ...

  2. python一个函数调用另一个函数中的变量_在Python 中同一个类两个函数间变量的调用方法...

    在Python 中同一个类两个函数间变量的调用方法 更新时间:2019年01月31日 15:44:54 作者:wxy_summer 今天小编就为大家分享一篇在Python 中同一个类两个函数间变量的调 ...

  3. python开发的程序中以电子表格显示数据_使用 Python 读取电子表格中的数据实例详解...

    Python 是最流行.功能最强大的编程语言之一.由于它是自由开源的,因此每个人都可以使用.大多数 Fedora 系统都已安装了该语言.Python 可用于多种任务,其中包括处理逗号分隔值(CSV)数 ...

  4. python中表示单一数据的类型被称为_各种Python数据类型的完整列表

    各种Python数据类型的完整列表 如今,Python是最受欢迎的编程语言之一.它允许开发人员将所有精力都放在实现上,而不是将复杂的程序和python中的数据类型用于此目的只是为了简化我们的工作. P ...

  5. python程序写完后点哪个运行快_让 Python 代码运行更快的最佳方式!

    PyPy与CPython PyPy是Python解释器CPython的直接替代品.CPython将Python编译为中间字节码然后由虚拟机解释,而PyPy使用实时(JIT)编译将Python代码转换为 ...

  6. python中的装饰器、装饰器模式_浅析Python装饰器以及装饰器模式

    漫谈 如果作为一个Python入门,不了解Python装饰器也没什么,但是如果作为一个中级Python开发人员,如果再不对python装饰器熟稔于心的话,那么可能并没有量变积累到质变. 我以前也看过很 ...

  7. java 生成随机数_不会生成随机数?我们来看看java生成随机数的10种方法

    1.引言 本文将探讨用 Java 生成随机数的不同方法. 2.Java API Java API 提供了几种随机数生成方法.让我们一起来了解一下. 2.1.java.lang.Math Math 类中 ...

  8. 关于python无限循环、以下选项错误的是_关于Python的无限循环,以下选项中描述错误的是...

    [单选题]以下选项中,符合Python语言变量命名规则的是 [单选题]关于 Python 的复数类型,以下选项中描述错误的是 [单选题]关于Python字符串,以下选项中描述错误的是 [单选题]关于P ...

  9. python是一种动态语言、这意味着_【python编程的优点是什么?难怪选择python的人越来越多了】- 环球网校...

    [摘要]Python是一种动态解释的.强类型定义语言:编写它时不需要定义变量类型.python判断值的类型的方法是什么,那么python编程的优点是什么?难怪选择python的人越来越多了,所以你知道 ...

最新文章

  1. CodeGen API分析
  2. 从事软件测试为什么要学自动化?
  3. 学习JS面向对象成果,借国庆发布个最新作品与大家交流
  4. asp.net中jQuery $post用法
  5. PLSQL9.0下载及配置oracle,PLSQL登录时常见问题解决
  6. java数组复制用for_在JavaScript中复制数组的最快方法 - 切片与'for'循环
  7. iOS 直播推流 - 搭建基于RTMP的本地Nginx服务器
  8. QEBA:基于类边界查询访问的黑盒攻击
  9. 基于Heritrix+Lucene的搜索引擎构建(6)——搜索UI与结果页面
  10. 关于40G/100G高速PHY的测试
  11. 云起作者认证大神_2020网络文学“白金大神”名单出炉!顶级作家是怎样炼成的?...
  12. Linux 常用命令 Updating
  13. 【毕业设计】深度学习身份证识别系统 - 机器视觉 python
  14. PHP推荐简单采集微博文章信息自用
  15. 从文本进度条开始:谈谈自己缺失的Python基础知识
  16. 项目开发过程中遇到的问题和解决方法
  17. CTF线下赛AWD总结
  18. 项目绩效考核体系指标建设
  19. 计算机网络技术用i3可以吗,买电脑避坑第一步,i3处理器和i5等处理器有什么区别?...
  20. 人事档案管理系统功能建设分享之博奥智源公司

热门文章

  1. Python精确指南-第一章环境
  2. html中第一行代码,HTML5 CSS3初学者指南(1) – 编写第一行代码
  3. nn.Conv2d的解释
  4. * poj 3159 Candies 最短路 dijkstra堆优化
  5. 约瑟夫问题公式及代码实现
  6. html item 左右滑动,拖动Html元素集合 Drag and Drop any item
  7. python3 循环语句 for语句和while语句
  8. 南通大学python期末考试试卷_模拟试卷C
  9. mysql安装./depcomp_编译安装mysql及问题汇总
  10. cmd查看某个服务器端口状态,cmd中检测端口是否处于监听状态 | IT博客