【代码仓库】生成4位数的随机验证码,包括字符和数字,并且不能出现重复元素——python实现1.0

该博客主要围绕使用Python开发语言解决生成4位数随机验证码的问题。要求验证码包含字符和数字,且不能有重复元素,博客给出了相应代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目:生成4位数的随机验证码,包括字符和数字,并且不能出现重复元素

代码:

# 生成四位随机数的验证码
import random

# 用来保存生成的随机数或字母
list = ''
lastList = ''

# @函数作用:判断字符串重复函数
# @函数说明:如果字符串中出现重复字符串,则返回Ture,没有返回False
# @函数参数(str):字符串
# @函数返回值:返回布尔类型值,返回Ture值,或者False
def chongfu(str):
    # 对目标字符串进行遍历
    for i in str:
        # 判断遍历的当前字符在目标字符串出现的次数,如果大于1直接返回Ture
        if str.count(i) > 1:
            return True
    # 遍历所有并且没有进入条件,说明字符串中没有重复元素,返回False
    return False


# @函数作用:复制字符串函数
# @函数说明:将目标字符串复制,并且复制后的返回的值的变量的地址跟原来目标字符串不同
# @函数参数(str):字符串
# @函数返回值:返回复制的字符串的值
def copy(str):
    # 初始化一个存储复制字符串的变量
    copy_str = ''
    # 对目标字符串进行遍历
    for i in str:
        # 将目标字符串拆解后再度拼合成目标字符串
        copy_str = copy_str + i
    # 返回复制的字符串
    return copy_str


# range(x)生成x个随机数的验证码
# 循环条件为验证码字符串的长度<4,目的是为了出现重复字符元素时,可以进行删除重新生成随机值
while len(list) < 4:
    # 跟随循环生成一个0-4之间的随机数来决定生成的是大小写字母还是数字
    j = random.randrange(0, 4)
    # 随机产生的数字是1时,生成数字
    if j == 1:
        # 生成0-9之间的随机数字,并将其转为字符串连接在list变量后面
        list = list + str(random.randrange(0, 10))
    # 随机产生的数字是2时,生成大写字母
    elif j == 2:
        # 生成65-90(对应ASCII码表上的大写字母序号)之间的随机数字,并将其转为字符串连接在list变量后面
        list = list + chr(random.randrange(65, 91))
    # 随机产生的数字是除了1和2时,生成小写字母
    else:
        # 生成97-122(对应ASCII码表上的小写字母序号)之间的随机数字,并将其转为字符串连接在list变量后面
        list = list + chr(random.randrange(97, 122))
    # 检查生成的字符串中有没有重复的元素
    if chongfu(list):
        # 有重复的元素,则将当前的字符串替换成上一刻的字符串
        list = copy(lastList)
    # 将新的字符串存入到lastList变量中,作上一刻的字符串
    lastList = copy(list)
# 打印输出生成的随机验证码
print(list)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

跳河轻生的鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值