page contents

python基础编程100例:第46期-激活码生成器

本文讲述了python基础编程100例:第46期-激活码生成器!具有很好的参考价值,希望对大家有所帮助。一起跟随六星小编过来看看吧,具体如下:

attachments-2022-03-Z1zQXYmr62392286c7f46.png

本文讲述了python基础编程100例:第46期-激活码生成器!具有很好的参考价值,希望对大家有所帮助。一起跟随六星小编过来看看吧,具体如下:

第46期-激活码生成器

1 问题描述

假如你要为一个应用搞限时促销,生成激活码(或者优惠券),请用 Python 如何生成 200 个激活码(或者优惠券)。激活码的格式为asqE-9xRK-lqWU-QkMT

要求1:使用随机生成时,生成数字概率为1/5,大写字母和小写字母概率各为2/5

要求2:200个激活码


2 解题思路

第一步: 由于有生成概率,所以需要使用random模块

第二步: 生成200个激活码,for或者while循环


3 解题方法

import random

def gen(x):

    if x <= 0.4:

        return random.choice(

            ['Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P', 'L', 'K', 'J', 'H', 'G', 'F', 'D', 'S', 'A', 'Z', 'X',

             'C', 'V', 'B', 'N', 'M'])

    elif x <= 0.8:

        return random.choice(

            ['q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p', 'l', 'k', 'j', 'h', 'g', 'f', 'd', 's', 'a', 'z', 'x',

             'c', 'v', 'b', 'n', 'm'])

    else:

        return random.choice(['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'])

def gen1():

    a = [''] * 19

    for i in range(19):

        x = random.random()

        if (i + 1) % 5 != 0:

            a[i] = gen(x)

        else:

            a[i] = '-'

    return a

for _ in range(200):

    print(''.join(gen1()))

第1行: 引入random随机模块

第2行: 创建函数gen(x)用于为各个数字及字母设置出现概率,其中自变量x为0-1之间随即出现的浮点型小数

第3-6行: 当x<=0.4时,即出现概率为4/10即0.4,随机选择大写字母中的一个

第7-10行: 当0.4<x<=0.8时,即出现概率为4/10即0.4,随机选择小写字母中的一个

第11-12行: 其他情况下即x>0.8时,即出现概率为2/10即0.2,随机选择一个数字

第13行: 创建函数gen1()用于随机生成激活码

第14行: 由于一个激活码内19个元素,创建列表a并为其内部添加19个元素

第15-16行: for循环运行19次,并为x赋值0-1的随机浮点型小数

第17-18行: 当循环次数不是5的倍数时,给a列表中的对应位置赋值gen(x)函数生成的随机数字或字母

第19-20行: 当循环次数是5的倍数时,给a列表中的对应位置赋值激活码中的字符'-'

第21行: 将列表a返回给函数值

第22行: 循环200次

第23行: 输出200个激活吗,join函数将列表中的各种元素连在一起


代码运行结果为:

attachments-2022-03-Da2m8Rjk6239223c9d517.png

更多相关技术内容咨询欢迎前往并持续关注六星社区了解详情。

想高效系统的学习Python编程语言,推荐大家关注一个微信公众号:Python编程学习圈。每天分享行业资讯、技术干货供大家阅读,关注即可免费领取整套Python入门到进阶的学习资料以及教程,感兴趣的小伙伴赶紧行动起来吧。

attachments-2022-05-hNFnsCGV6290948057e99.jpeg

  • 发表于 2022-03-22 09:13
  • 阅读 ( 594 )
  • 分类:Python开发

0 条评论

请先 登录 后评论
轩辕小不懂
轩辕小不懂

2403 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1474 文章
  3. Pack 1135 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章