第一天的作业源码

登录接口程序

作业要求:编写登陆接口

  • 输入用户名密码
  • 认证成功后显示欢迎信息
  • 输错三次后锁定

流程图:

通过函数实现: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()

 

posted @ 2016-06-19 11:35  永远之晨曦  阅读(135)  评论(0)    收藏  举报