文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

利用Python生成随机4位验证码

2023-01-31 06:08

关注
"""
           作者:白
           时间:2018年1月8日
           功能: 生成随机4位验证码(必须由两个2字母和2个数字组成)
"""
import  random

def main():
    list_num = [1,2,3,4,5,6,7,8,9,0]
    list_str = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','s','t','x','y','z']
    veri_str = random.sample(list_str,2)
    veri_num = random.sample(list_num,2)
    veri_out = random.sample(veri_num + veri_str,4)
    veri_res = str(veri_out[0]) + str(veri_out[1]) + str(veri_out[2]) + str(veri_out[3])
    print(veri_res)

if __name__ == '__main__':
    main()

这里有两个问题:

1、如何简化list_str  生成一个a-z的列表,这里我就用比较笨的方法一个一个列出来了

2、不知道python有没有一键式的函数,生成验证码的那种


如知道以上两个问题的,可以留言告诉我一下,不胜感激!~


对于上面的问题,经过昨天下午的测试和练习以不同函数分开的方法拼接而成,这样方便后面对于不同模块的使用。

版本二:

"""
        作者:白
        日期:2018年1月8日
        功能:利用random/chr()/ord()生成一个4位随机数(包含大小写字母和数字)
chr(x)                 将一个整数转换为一个字符
ord(x)                 将一个字符转换为它的整数值
"""
import random
veri_list = []
#通过chr()函数取随机大写字母A-Z
def A_str():
    for i in range(4):
        veri_num1 = random.randint(65,90)  #取值65-90随机一个整数
        veri_str1 = chr(veri_num1)
        veri_list.append(veri_str1)

#通过chr()函数取随机小写字母a-z
def a_str():
    for i in range(4):
        veri_num2 = random.randint(97,122)  # 取值98-122随机一个整数
        veri_str2 = chr(veri_num2)           # 转换小写字母a-z的随机
        veri_list.append(veri_str2)

#通过chr()和ord()函数取随机数字0-9
def num_1():
    for i in range(4):
        veri_num3 = random.randint(48,57)
        veri_str3 = chr(veri_num3)
        veri_list.append(veri_str3)

#执行主函数
def main():
    A_str()
    a_str()
    num_1()
    veri_res = random.sample(veri_list,4)
    # print(veri_res)
    print(str(veri_res[0]) + str(veri_res[1]) + str(veri_res[2]) + str(veri_res[3]))
if __name__ == '__main__':
    main()

版本三:

"""
        作者:白
        日期:2018年4月15日
        功能:利用random/chr()/ord()生成一个8位随机数(包含大小写字母和数字和特殊字符)
chr(x)                 将一个整数转换为一个字符
ord(x)                 将一个字符转换为它的整数值
"""
import random
veri_list = []
# 通过chr()函数取随机大写字母A-Z
def A_str():
    for i in range(2):
        veri_num1 = random.randint(65, 90)  # 取值65-90随机一个整数
        veri_str1 = chr(veri_num1)
        veri_list.append(veri_str1)
        
# 通过chr()函数取随机小写字母a-z
def a_str():
    for i in range(2):
        veri_num2 = random.randint(97, 122)  # 取值98-122随机一个整数
        veri_str2 = chr(veri_num2)  # 转换小写字母a-z的随机
        veri_list.append(veri_str2)
        
# 通过chr()和ord()函数取随机数字0-9
def num_1():
    for i in range(2):
        veri_num3 = random.randint(48, 57)
        veri_str3 = chr(veri_num3)
        veri_list.extend(veri_str3)
        
#通过列表生成随机特殊字符        
def s_str():
    tstr = ['!', '@', '#', '$', '%', '&', '_']
    veri_num4 = random.sample(tstr,2)
    veri_list.extend(veri_num4)
    
# 执行主函数
def main():
    A_str()
    a_str()
    num_1()
    s_str()
    res_str=random.sample(veri_list,8)
    print(''.join(res_str))
if __name__ == '__main__':
    main()


阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯