Show me the code_0001题
admin
2023-07-30 20:47:15
0

0001题:做为Apple Store App独立开发者,你要搞限时促销,为你的应用生成激活码(或者优惠券),使用Python如何生成200个激活码(或者优惠券)?

有两个思路,第一个是用string的digits和letters,然后采用random模块中的一些方法随机取出字符。

另一个方法是用uuid模块

简介(维基百科)

通用唯一识别码(英语:Universally Unique Identifier,简称UUID)是一种软件建构的标准,亦为开放软件基金会组织在分散式计算环境领域的一部份。
UUID的目的,是让分散式系统中的所有元素,都能有唯一的辨识资讯,而不需要透过中央控制端来做辨识资讯的指定。如此一来,每个人都可以建立不与其它人冲突的UUID。在这样的情况下,就不需考虑资料库建立时的名称重复问题。目前最广泛应用的UUID,是微软公司的全局唯一标识符(GUID),而其他重要的应用,则有Linux ext2/ext3档案系统、LUKS加密分区、GNOME、KDE、Mac OS X等等。另外我们也可以在e2fsprogs套件中的UUID函式库找到实现。[3]

定义 :

UUID是由一组32位数的16进位数字所构成,是故UUID理论上的总数为1632=2128,约等于3.4 x 1038。也就是说若每纳秒产生1兆个UUID,要花100亿年才会将所有UUID用完,,它保证对在同一时空中的所有机器都是唯一的(重复机率请参考随机UUID的重复机率)。

算法

  • uuid1()——基于时间戳
    由MAC地址、当前时间戳、随机数生成。可以保证全球范围内的唯一性,
    但MAC的使用同时带来安全性问题,局域网中可以使用IP来代替MAC。
  • uuid2()——基于分布式计算环境DCE(Python中没有这个函数)
    算法与uuid1相同,不同的是把时间戳的前4位置换为POSIX的UID。
    实际中很少用到该方法。
  • uuid3()——基于名字的MD5散列值
    通过计算名字和命名空间的MD5散列值得到,保证了同一命名空间中不同名字的唯一性,
    和不同命名空间的唯一性,但同一命名空间的同一名字生成相同的uuid。
  • uuid4()——基于随机数
    由伪随机数得到,有一定的重复概率,该概率可以计算出来。
  • uuid5()——基于名字的SHA-1散列值
    算法与uuid3相同,不同的是使用 Secure Hash Algorithm 1 算法
    在python中在生成UUID

示例代码

import uuid
uuid.uuid1()
uuid.uuid3(namespace, name)
uuid.uuid4()
uuid.uuid5(namespace, name)

解决第0001题的代码

import uuid

class Generation:
    def __init__(self):
        self.num = 0
        self.listid = []

    def generate_uuid(self, num):
        for i in range(int(num)):
            self.listid.append(uuid.uuid1())

    def get__uuid(self):
        return self.listid

if __name__ == \'__main__\':
    gencode = Generation()
    gencode.generate_uuid(200)
    keys = gencode.get__uuid()

    filekeys = file(\'gencodes.txt\', \'w\')
    for k in keys:
        filekeys.write(str(k)+\'\\n\')
    filekeys.close()

相关内容

热门资讯

Mobi、epub格式电子书如... 在wps里全局设置里有一个文件关联,打开,勾选电子书文件选项就可以了。
500 行 Python 代码... 语法分析器描述了一个句子的语法结构,用来帮助其他的应用进行推理。自然语言引入了很多意外的歧义,以我们...
定时清理删除C:\Progra... C:\Program Files (x86)下面很多scoped_dir开头的文件夹 写个批处理 定...
scoped_dir32_70... 一台虚拟机C盘总是莫名奇妙的空间用完,导致很多软件没法再运行。经过仔细检查发现是C:\Program...
65536是2的几次方 计算2... 65536是2的16次方:65536=2⁶ 65536是256的2次方:65536=256 6553...
小程序支付时提示:appid和... [Q]小程序支付时提示:appid和mch_id不匹配 [A]小程序和微信支付没有进行关联,访问“小...
pycparser 是一个用... `pycparser` 是一个用 Python 编写的 C 语言解析器。它可以用来解析 C 代码并构...
微信小程序使用slider实现... 众所周知哈,微信小程序里面的音频播放是没有进度条的,但最近有个项目呢,客户要求音频要有进度条控制,所...
Apache Doris 2.... 亲爱的社区小伙伴们,我们很高兴地向大家宣布,Apache Doris 2.0.0 版本已于...
python清除字符串里非数字... 本文实例讲述了python清除字符串里非数字字符的方法。分享给大家供大家参考。具体如下: impor...