第一天的作业源码
登录接口程序
作业要求:编写登陆接口
- 输入用户名密码
- 认证成功后显示欢迎信息
- 输错三次后锁定
流程图:

通过函数实现:func.py模块代码:
1 #!/usr/bin/env python 2 #-*-coding:utf-8-*- 3 #Created on 2016-6-18下午5:24:51 4 #author: Administrator 5 import os 6 7 8 def read_file(file_name): #读取锁定用户文件函数,如果存在指定的文件,则获取文件内容,返回列表,否则创建指定文件,并返回空值 9 if os.path.exists(file_name) == False: #判断是否存在文件,引用os模块实现功能 10 fp = open(file_name,'w') #以写方式打开文件,在这里的目的是为了创建指定文件 11 fp.close() 12 return None 13 else: 14 fp = open(file_name,'r') #以只读方式打开文件,获取文件内容,存放于name_list列表中,并将列表作为函数返回值 15 name_list = [] 16 for name in fp.readlines(): 17 name = name.replace('\n','').split(',') 18 name_list.append(name) 19 fp.close() 20 return name_list 21 22 def write_file(file_name,content): #写入锁定用户文件函数,将连续输入三次的最后一次用户名写入锁定用户名单 23 fp = open(file_name,'a') 24 content = '\n' + content 25 fp.writelines(content) 26 fp.close() 27 28 def get_locked_name(input_name,name_list=[]): #获取锁定用户函数,如果输入的用户名为锁定用户,则函数返回锁定用户名称,否则返回None,主要作用为判断输入用户是否为已锁定用户 29 for tmp_name in name_list: 30 if input_name == tmp_name: 31 return input_name 32 else: 33 continue 34 return None
主程序模块:
1 #!/usr/bin/env python 2 #-*-coding:utf-8-*- 3 #Created on 2016-6-18下午5:24:24 4 #author: Administrator 5 6 from func import * 7 8 RIGHT_NAME = 'chenxi' #定义常量RIGHT_NAME、PASSWORD用于存放正确的用户名、密码,这两个数据可以存放于文件中,或者数据库里面,初始化时由文件或数据库中读取 9 PASSWORD = '123' 10 locked_file = 'locked.txt' #定义存放锁定用户的文件名,目的是如果程序中用到这个文件名的地方,一旦修改,只用修改这个locked_file变量的值即可 11 12 locked_name = [] 13 14 locked = [] 15 locked = read_file(locked_file) 16 17 #获取锁定用户,并存放到locked_name列表中 18 if locked: 19 for name in locked: 20 for item in name: 21 locked_name.append(item) 22 def main(): 23 counter = 3 #定义循环次数,用于设定用户输入错误的阈值 24 while counter: 25 username = input('请输入用户名:').strip() #获取用户名,.strip()作用是除去空格,仅仅只要用户输入的有效字符串信息 26 password = input('请输入密码:').strip() 27 28 if (username == '' or password == ''): 29 print('用户名、密码均不能为空.') 30 continue 31 32 tmp_name = get_locked_name(username,locked_name) 33 if tmp_name: 34 print('用户%s为锁定用户,想要解锁,请与管理员联系。' % tmp_name) 35 break 36 37 if (username == RIGHT_NAME and password == PASSWORD): 38 print('感谢%s使用系统!O(∩_∩)O~'%username) 39 break 40 41 else: 42 print('用户名或密码不对。') 43 counter -= 1 44 continue 45 46 if counter == 0: 47 print('用户%s已被锁定,请联系管理员解锁。'% username) 48 write_file('locked.txt',username) 49 50 if __name__ == '__main__': 51 main()

浙公网安备 33010602011771号