python修炼之基础篇3(第一周作业)

作业一:编写登陆接口

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

流程图:

文件:

locked.txt

[]
View Code
accounts.txt


{"liuhaigang":"abc123","alex":"123456","liu":"123"}
View Code

code:

 1 #!/usr/bin/env python
 2 # _*_coding:utf-8_*_
 3 
 4 
 5 import time
 6 
 7 count = 0  # 为了记录需求中3次输入错误次数,计数项赋初始值
 8 account_file = open("accounts.txt",'r',encoding='utf-8')  # 打开正确用户信息文档,获取正确的用户名密码
 9 locked_file = open("locked.txt",'r+',encoding='utf-8')  # 打开已锁定的用户信息文档,获取锁定的用户名密码
10 name_dic = eval(account_file.read())  # 将正确信息中的字符串转换成字典(原字符串为字典格式)
11 locked_list = eval(locked_file.read())  # 将正确信息中的字符串转换成列表(原字符串为列表格式)
12 count_num = 0 #为了记录密码输入错误的次数,计数项赋初始值
13 while True:
14     #输入无效次数达到3次以后要等待10秒后重新输入
15     if count == 3:
16         print("dute to input non-existent user ,you need to wait 10s")
17         time.sleep(10)
18     # 输入大于3次锁定用户
19     if count_num > 2:
20         locked_list.append(username)  # 将已锁定信息加入锁定元组中
21         locked_file.seek(0)  # 输入指针移到开头,如果不移动会产生多个元组
22         locked_file.write(str(locked_list))  # 写入锁定信息
23         locked_file.tell()
24         exit("你的账号已经连续三次输入错误已被锁定,请联系管理员!")
25 
26     username = input("请输入用户名 : ")
27     if username in locked_list:
28         exit("你输入的账号已锁定,请联系管理员!")
29     elif username in name_dic :  #如输入的用户名正确比较输入的密码
30         password = input("请输入密码 : ")
31         if password == name_dic[username] : #判断密码是否正确
32             exit("欢迎%s登录!" %username)  #打印登录信息并退出程序
33         else :
34             count_num += 1
35             if count_num <= 2:
36                 #print (count)
37                 print("你输入的用户名或密码错误,请重新输入!")
38             continue
39 
40 #输入的用户信息无效打印错误信息
41     else:
42         count += 1
43         if count < 6:
44             print("你输入的用户名不存在!请输入正确的用户名!")
45             continue
46         else:
47             exit("你输入的无效次数过多已退出")
View Code

 

作业二:三级菜单

作业需求:

1. 运行程序输出第一级菜单

2. 选择一级菜单某项,输出二级菜单,同理输出三级菜单

3. 菜单数据保存在文件中

4. 让用户选择是否要退出

5. 有返回上一级菜单的功能

流程图:

文件(三级菜单的文件)

 1 {
 2     "北京":{
 3         "朝阳区":{
 4             "高碑店":{"豆各庄地区","孙河地区","望京"},
 5             "管庄":{"惠河西里社区","西会村","东会村"}
 6         },
 7         "昌平区":{
 8             "沙河":{"朝宗桥","巩华城","北门展思门"},
 9             "回龙观":{"龙泽园","史各庄"}
10         },
11         "海淀区":{
12             "中关村":{"中科院","502研究所","知春大厦"},
13             "上地":{"方正集团","上地佳源","计算机产业园"}
14         }
15     },
16     "山东":{
17         "济南市":{
18             "历下区":{"千佛山","燕子山","龙洞山"},
19             "市中区":{"大观园街道","白马山街道","七贤街道"}
20         },
21         "青岛市":{
22             "市北区":{"错埠岭","科技街","哈尔滨路"},
23             "市南区":{"中商大厦","火车站","中山公园"},
24             "崂山区":{"崂山风景区","大拇指广场","出版大厦"}
25         },
26         "烟台市":{
27             "芝罘区":{"恒丰银行","大悦城","万达广场"},
28             "莱山区":{"烟台大学","山东工商学院","滨洲医学院"}
29         }
30     }
31 }
View Code

code:

 1 #!/usr/bin/env python
 2 # _*_coding:utf-8_*_
 3 
 4 with open("list.txt","r",encoding="utf-8") as df:
 5     data = eval(df.read())
 6 
 7 exit_flag = False
 8 while not exit_flag :
 9     print("".center(50, '*'))
10     for i in data:
11         print(i)
12     choice = input("请输入省名,或输入q(quit)退出:")
13     if choice in data:
14         while not exit_flag:
15             print("".center(50, '*'))
16             for i2 in data[choice]:
17                 print(i2)
18             choice2 = input("请输入市名,输入b返回,或输入q(quit)退出:")
19             if choice2 in data[choice]:
20                 while not exit_flag:
21                     print("".center(50, '*'))
22                     for i3 in data[choice][choice2]:
23                         print (i3)
24                     choice3 = input("请输入区名,输入b返回,或输入q(quit)退出")
25                     if choice3 in data[choice][choice2]:
26                         while not exit_flag:
27                             print(" 详细信息 ".center(50, '*'))
28                             for i4 in data[choice][choice2][choice3]:
29                                 print(i4)
30                             choice4 = input("已经到最后一层,请按b返回,或输入q(quit)退出>>:")
31                             if choice4 == 'b':
32                                 break
33                             elif choice4 == 'q':
34                                 exit_flag = True
35                             else:
36                                 print("输入无效!请重新输入")
37                     elif choice3 == 'b':
38                         break
39                     elif choice3 == 'q':
40                         exit_flag = True
41                     else:
42                         print("输入无效!请重新输入")
43             elif choice2 == 'b':
44                 break
45             elif choice2 == 'q':
46                 exit_flag = True
47             else:
48                 print("输入无效!请重新输入")
49     elif choice == 'q':
50         exit_flag = True
51     else:
52         print("输入无效!请重新输入")
View Code

 

 

 

posted on 2017-03-27 16:02  alex77  阅读(212)  评论(0)    收藏  举报

导航