代码语言:javascript复制
为了以后更好更快速的复习,此博客记录我对作业的总结。对于基础作业,我认为最重要的是过程,至于实现是不是完美,代码是不是完美,虽然重要,但是作业过程中,用到的知识点是值得总结和整理的。
一.模拟登陆:
1. 用户输入帐号密码进行登陆 2. 用户信息保存在文件内 3. 用户密码输入错误三次后锁定用户
思路:
1)输入时用户名后,先判断用户名是否被锁,然后检查用户名是否存在用户数据库; 2)输入相同不存在用户名3次,此用户名被锁; 3)输入用户名存在时才可输入密码,相同用户名时,输入密码错误三次,此用户名被锁; 4)若每次都没输入存在的用户,则再次要求输入用户,直到达到总输入次数;
基本流程图:
代码:
代码语言:javascript复制cat user_login.py #主程序
代码语言:javascript复制#!#!/usr/bin/env python
#_*_coding:utf-8_*_
'''
* Created on 2016/10/10 22:13.
* @author: Chinge_Yang.
'''
import os
import getpass
retry_max = 3
retry_count = 0
user_file = "user.txt"
lock_file = "user_lock.txt"
user_same = 0
user_tmp = ""
if not os.path.exists(lock_file): #不存在时,则创建
f = open(lock_file,'w')
f.close()
while retry_count < retry_max:
#输入用户名
user_name = input("Please input your name:")
#输入的用户名和上次输入的对比
if user_name == user_tmp:
#用户一样数加1
user_same = 1
else:
#用户一样数归0
user_same = 0
#输入的用户名存为临时变量
user_tmp = user_name
#判断用户是否被锁
lock_check = open(lock_file)
for line in lock_check:
line = line.split()
#用户被锁,打印提示
if user_name == line[0]:
exit("User 33[1;31;40m%s 33[0m is locked!" % user_name)
lock_check.close()
#查看是否存在于用户数据库
user_check = open(user_file)
for l in user_check:
l = l.split()
user = l[0]
passwd = l[1]
if user_name == user:
#输入密码
#user_passwd = input("Please input your password:")
user_passwd = getpass.getpass("