模拟登陆

模拟登陆:

1. 用户输入帐号密码进行登陆

2. 用户信息保存在文件内

3. 用户密码输入错误三次后锁定用户

 

def user_list():  # 打印用户名函数
    for k in user_dict:
        print(k)

with open('user_dict','r',encoding='utf-8') as f:
    for line in f:
        user_dict = eval(line.strip())

    with open('locked','r+',encoding='utf-8') as l:
        for line2 in l:
            lock_str = line2

locked = lock_str.split('|')

while True:
    user_list()
    print("选择登陆系统的用户名")
    enter_name = input("输入用户名:").strip()
    count = 0
    if enter_name in locked:
        print("账户{0}已锁".format(enter_name))
        break
    if enter_name in user_dict:
        while count < 3:
            enter_passwd = input("输入用户密码").strip()
            if enter_passwd == user_dict[enter_name]:
                print("登录成功!")
                break
            else:
                count += 1
                print("密码错!")
                try_times = 3 - count
                print("您用的登录名{0}登录密码错误,您还剩{1}次机会".format(enter_name, try_times))
                print("您用的登录名{0}已锁".format(enter_name))
        else:
            lock_str = lock_str+'|'+enter_name
            # temp_list.append(enter_name)  # todo how to write to the list
            # temp = str(locked)
            # l.write(temp)
            # l.flush()
            with open('locked', 'r+', encoding='utf-8') as x:
                x.write(lock_str)
                x.flush()
            break
    if len(enter_name) == 0 or enter_name not in user_dict:continue

'''
写在后面:
所有程序开始先把事情按照最好的流程撸一遍,
再考虑突发的事情
最后考虑是否要加循环
'''
View Code

 

转载于:https://www.cnblogs.com/gzz041/p/6914081.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值