zoukankan      html  css  js  c++  java
  • Python文件练习_自动生成密码文件

    1、输入几,文件里就给你产生多少条密码 (random、文件)
    2、密码必须包括大写字母、小写字母、数字和特殊字符
    3、密码不能重复(集合)
    4、密码都是随机产生的
    5、密码长度6-11位

    import string,random
    num = string.digits #定义数字集,string
    upper = string.ascii_uppercase #定义大写字母集,string
    lower = string.ascii_lowercase #定义小写字母集,string
    punc = string.punctuation #定义特殊字符集,string
    number = int(input('请输入需要生成的密码数'))
    with open('密码','w+',encoding='utf-8') as f: #以写读模式写入
        passwd_set = set()
        for i in range(number):
            number = random.choice(num) #随机取一个数字,string
            u_case = random.choice(upper) #随机取一个大写字母,string
            l_case = random.choice(lower) #随机取一个小写字母,string
            punct = random.choice(punc) #随机取一个特殊符号,string
            rand_num = random.randint(2,7) #密码长度6-11位,减去4位必须的,剩下2-7随机位,随机整数,string
            passwd_rand = random.sample(num + upper + lower + punc,rand_num)#从密码串中随机取2-7个元素,list
            passwd = number + u_case + l_case + punct + ''.join(passwd_rand)#密码由大小写字母、数字和特殊字符固定位+随机位组成
            passwd_set.add(passwd) #集合去重
            if len(passwd_set)<i: #当重复时,集合个数小于已循环数
                i -= 1 #循环增加一次
        for j in passwd_set:
            f.write(j+'
    ')
        f.seek(0) #追加写模式的文件指针在末尾,需要移到开始再读取
        print('生成的密码是
    ',f.read())

    输入10后产生的密码文件如下

    8Eh&_2^zL%+
    1Ge_2!]|u
    2Ww}DZPjQU
    8Yf#uOc$;wK
    6Ch+LTH
    7Ot=B>rj}X
    0Vn_E@3
    8Iw-$Nuj
    8Iw,*ZG2d
    1Ak$jI9F{M
  • 相关阅读:
    寒假作业3:简化电梯优化
    线段树2
    线段树1
    数字游戏(二)
    P1352 没有上司的舞会
    加分二叉树
    数字转换
    BLO-Blockade
    树上倍增法求LCA
    种西瓜
  • 原文地址:https://www.cnblogs.com/dongrui624/p/8804268.html
Copyright © 2011-2022 走看看