练习1: 随机产生注册用账号

需求:

产生的账号是以@163.com结尾,长度由用户输入,产生多少条也由用户输入,用户名不能重复,用户名必须由大写字母、小写字母、数字组成

import random,string

def gen_username():
    endwith = '@163.com'
    success_username =0
    duplicate_flag = 0  # 密码是否重复
    duplicate_num = 0  # 重复的次数
    with open('usernamefile.txt', 'w') as fnew:  # 没有文件的话新建,已有会清空
        pass
    username_len = int(input('请输入用户名的长度:').strip())  #接收的为字符,需要转为int
    username_num = int(input('请输入产生账号的条数:').strip())
    while username_len <4:
        print('用户名必须由大写、小写、数字组成,长度必须大于3,请重新输入:')
        username_len = int(input('请输入用户名的长度:').strip())
    else:
        while success_username < username_num:
            username_list = []
            upper_name = random.choice(string.ascii_uppercase)
            lower_name = random.choice(string.ascii_lowercase)
            username_list.append(upper_name)
            username_list.append(lower_name)
            for digit_num in range(username_len-2):
                digit_name = random.randint(0,9)
                username_list.append(str(digit_name))  #要用到list 的join方法,list中的每个元素需为字符串
                digit_name +=1

            random.shuffle(username_list)  #打乱顺序
            username = ''.join(username_list) + endwith
            with open('usernamefile.txt','r') as f_dup:
                for line in f_dup:
                    if username == line:
                        duplicate_flag = 1
                        duplicate_num = duplicate_num + 1
                if duplicate_flag ==0:  #没有和文件里已有的用户名重复则写入
                    with open('usernamefile.txt','a+') as f_write:
                        f_write.write(username)
                        f_write.write('\n')
                    success_username += 1
        else:
            print("用户名生成完成,重复次数 %d" % duplicate_num)

gen_username()

 

转载于:https://www.cnblogs.com/liuyanerfly/p/9172676.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值