python之路-基础篇-功课一 编写登陆接口

python之路-基础篇-作业一 编写登陆接口

作业需求:

① 输入用户名密码

② 认证成功后显示欢迎信息

③ 输错三次后锁定

 

流程图:

图片不太清楚,详图请挪脚至http://pan.baidu.com/s/1pKqlXQr

python之路-基础篇-功课一 编写登陆接口

 

代码:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

# file_name :user_login.py

lock = 0
lock_value = 'no'
lock_dict = {}
user_dict = {}

f1 = open('lock.txt', 'r+')
f2 = open('user.txt', 'r')
for i in f1.readlines():
    user, number = i.strip().split()
    lock_dict[user] = number
for i in f2.readlines():
    user, passwd = i.strip().split()
    user_dict[user] = passwd

while lock < 3:     # 输入次数小于3次进入循环
    username = input("请输入用户名:")
    passwd = input("请输入密码:")

    if lock_dict.get(username):     # username 在lock.txt中存在
        if int(lock_dict.get(username)) >= 3:
            print('账号已被锁定,请重新输入!')
            lock += 1
            continue

    if user_dict.get(username):     # username 在user_dict中存在
        if passwd == user_dict.get(username):   # 如果密码正确
            print('登陆成功')
            break
        else:   # 密码不正确
            if lock_dict.get(username):     # username在lock_dict中存在
                lock_dict[username] = int(lock_dict[username]) + 1
                lock_value = 'yes'

            else:   # username在lock_dict中不存在
                lock_dict[username] = 1
                lock_value = 'yes'
    else:   # username 在user_dict中不存在
        lock_value = 'yes'

    if lock_value == 'yes':
        print('账号密码错误, 请重新输入')
        lock += 1
        continue

else:   # 输入次数超过3次
    print('对不起,输入次数已经超过三次,已达上限,拜拜!')

# 将lock.txt 清空
f1.seek(0)
f1.truncate(0)

for i in lock_dict:
    username = i
    number = lock_dict[i]
    f1.write('%s\t%s\n' %(username, number))

f1.close()
f2.close()

 

辅助文件:

① user.txt
zhangcong   123
admin   123
zhangsan    123



② lock.txt为空