有一个问题急需解决!

定义函数def GetRandomChar(),返回一个随机的数字或大写或小写字母,每个符号出现的机会相等,不能使用字母对应的常数如65,97等。输入一个整数n(在5-10之间)然后调用该函数n次,生成并输出一个n位的验证码。不能把大小写字母和数字全写出来。

例如:

请输入一个整数:5
验证码为:C3MJ8

请输入一个整数:9
验证码为:mk6Qosgtk

请输入一个整数:12
请输入一个10以内的整数

(注意:每个字母和数字取到的概率要一样)

def GetRandomChar():
    import random
    # 取字母
    if random.randint(1, 11) % 2 == 0:#平衡概率
        charlist = [i for i in range(65, 91)] + [i for i in range(97, 123)]
        return chr(charlist[random.randint(0, len(charlist)-1)])
    else:
        # 取数字
        charlist = [i for i in range(48, 58)]
        return chr(charlist[random.randint(0, len(charlist)-1)])


n = eval(input('请输入一个整数:'))
if n <= 10:
    str = ''
    for i in range(n):
        str += GetRandomChar()
    print('验证码为:', str)
else:
    print('请输入一个10以内的整数')

img

img

img

有帮助请点击右上角采纳,有问题继续交流,你的采纳是对我回答的最大的肯定和动力