day1作业

Posted kiko0o0

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了day1作业相关的知识,希望对你有一定的参考价值。

技术分享图片
 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 # Author: Even
 4 
 5 
 6 count = 0  # 为了记录需求中3次输入错误避免的次数,计数项赋初始值
 7 load = True  # 为了完成功能后退出,赋初始值
 8 file = open("正确用户信息文件",r,encoding=utf-8)  # 打开正确用户信息文档,获取正确的用户名密码
 9 file_wrong = open("锁定用户信息文件",r+,encoding=utf-8)  # 打开已锁定的用户信息文档,获取锁定的用户名密码
10 line = eval(file.readline())  # 将正确信息中的字符串转换成字典(原字符串为字典格式)
11 line_wrong = eval(file_wrong.readline())  # 将正确信息中的字符串转换成列表(原字符串为列表格式)
12 
13 
14 def out():  # 将重复代码定义,功能是帮助跳出while循环并关闭已打开文档
15     global load  # 声明全局变量
16     load = False  # 赋值load,为了跳出while循环
17     file_wrong.close()  # 关闭正确用户信息文档
18     file.close()  # 关闭锁定用户信息文档
19 
20 while load:  # 判断是否已完成功能
21     name = input("请输入用户名:")  # 输入用户名
22     password = input("请输入密码:")  # 输入密码
23     if name in line and name not in line_wrong:  # 判断用户名是否正确,和是否已被锁定
24         while count <= 3:  # 判断是否已循环3次
25             if password == line[name]:  # 判断用户名是否对应正确的密码
26                 print("您已成功登陆")  # 输出成功登陆信息
27                 out()  # 调用自定义out方法
28                 break  # 跳出本次循环
29             else:  # 说明未输入正确的密码
30                 count +=1  # 计数项自加一
31                 msg_count = ‘‘‘第%s次密码输入错误\n‘‘‘%(count)  # 提示输入错误次数
32                 print(msg_count)  # 打印错误次数信息
33                 if count < 3:  # 小于三次错误输入,可以重新输入
34                     password = input("密码错误,请重新输入密码:")  # 重新输入密码
35                 elif count == 3:  # 判断是否已输错三次
36                     print("已输错3次,账号已锁定")  # 打印锁定提示信息
37                     line_wrong.append(name)  # 将已锁定信息加入锁定元组中
38                     file_wrong.seek(0)  # 输入指针移到开头,如果不移动会产生多个元组
39                     file_wrong.write(str(line_wrong))  # 写入锁定信息
40                     file_wrong.tell()  # 获取当前的输入指针位置,如果不获取会产生多个元组
41                     out()  # 调用out方法
42                     break
43     elif name in line_wrong:  # 判断用户名是否在已锁定用户名中
44         print("该用户名已被锁定")  # 打印已锁定通知信息
45         out()  # 调用自定义out方法
46         break  # 跳出当前循环
47     else:  # 说明用户名不在正确用户名信息中
48         print("该用户名不存在")  # 打印用户名输入错误信息
49         out()  # 调用out方法
View Code

 

模拟登陆作业需求:

1. 用户输入帐号密码进行登陆

2. 用户信息保存在文件内

3. 用户密码输入错误三次后锁定用户

 

额外实现功能:

1.提示输入错误次数

2.输入已锁定用户会提示

3.用户不存在会提示

 

正确用户信息文件中以字典形式保存用户名密码:

{‘name‘: ‘password‘,‘cx‘:‘123‘,‘even‘:‘456‘,‘test‘:‘ok‘}

锁定用户信息文件中以列表形式保存锁定用户名:

[‘name‘]

 

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

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

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

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

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

 

{
‘上海‘:{
"徐汇区":{
"漕河泾":["zk","test"],
"桂林路":["syf","test"]
},
"松江区":{
"九亭":["zz","mm"],
"泗泾":{"sss","ddd"},
"佘山":{"Aaat","aaa"},
},
"浦东区":{},
},
‘陕西‘:{
"西安":{},
"咸鱼":{},
"兴平":{}
},
‘北京‘:{
"1环":{},
"2环":{},
"3环":{},
},
}

技术分享图片
 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 # Author:kiko0o0
 4 
 5 
 6 import sys
 7 
 8 file = open("菜单列表",r,encoding=utf-8)    # 打开菜单
 9 f = file.read()
10 for line in f:    # 读取文件中每行信息
11     file_str = str(f)    # 将每行信息转成字符串格式
12 data = eval(file_str)    # 字符串转成字典格式
13 
14 
15 def list():    # 定义读取字典中的key
16     for i in data:
17         print(i)
18 
19 
20 def choose1(choice1):    # 定义第一层选择
21     while choice1 != q:    # 输入为q即退出程序
22         global one
23         one = choice1    # 定义全局变量one 使得其他函数可以调用
24         if choice1 in data:
25             for i2 in data[one]:
26                 print("\t", i2)    # 展示3级菜单中所选第一层下的第二层信息
27             choose2(input("请输入第二层:"))    # 调用choose2函数,输入第二层信息
28             break
29         elif choice1 == b:    # 输入b退出循环
30             break
31         else:
32             error = input("输入错误,请重新输入第一层:")    # 输入内容不在第一层选项中
33             if error == q:    # 输入q退出程序
34                 sys.exit()
35             else:   # 否则调用本函数
36                 choose1(error)
37     else:
38         sys.exit()
39 
40 
41 def choose2(choice2):   # 定义第二层选择
42     while choice2 != q:
43         global two
44         two = choice2   # 定义全局变量two 使得其他函数可以调用
45         if choice2 in data[one]:
46             for i3 in data[one][two]:
47                 print("\t\t", i3)   # 展示3级菜单中所选第二层下的第三层信息
48             choose3(input("请输入第三层:"))    # 调用choose3函数,输入第三层信息
49             break
50         elif choice2 == b:    # 输入b退回第一层
51             list()  # 调用list函数展示第一层信息
52             choose1(input("请输入第一层:"))
53             break
54         else:
55             error2 = input("输入错误,请重新输入第二层:")    # 输入错误,重新输入
56             if error2 == q:    # 输入q退出程序
57                 sys.exit()
58             else:
59                 choose2(error2)    # 调用本函数
60     else:
61         sys.exit()
62 
63 
64 def choose3(choice3):   # 定义第三层选择
65     while choice3 != q:
66         global three
67         three = choice3    # 定义全局变量three 使得其他函数可以调用
68         if choice3 in data[one][two]:
69             for i4 in data[one][two][three]:
70                 print("\t\t\t", i4)    # 展示3级菜单中所选第三层下的第四层信息
71             choose4(input("最后一层,退回上一层请按‘b’,退出请按‘q"))    # 调用choose4函数,提示退出或退回
72             break
73         elif choice3 == b:    # 输入为b退出
74             choose1(one)
75             break
76         else:
77             error3 = input("输入错误,请重新输入第三层:")    # 输入错误,可以重新输入,q退出
78             if error3 == q:
79                 sys.exit()
80             else:
81                 choose3(error3)    # 调用本函数
82     else:
83         sys.exit()
84 
85 
86 def choose4(choice4):   # 定义最后退出
87     while choice4 != q:   # 输入q退出
88         if choice4 == b:  # 输入b退回上一层
89             choose2(two)
90         else:
91             choose4(input("真的是最后一层了,退回上一层请按‘b’,退出请按‘q‘"))   # 声明结束
92     else:
93         sys.exit()
94 
95 
96 print("退出请按‘q‘,返回上级菜单请按‘b‘")    # 声明功能
97 list()  # 调用list函数展示第一层信息
98 choose1(input("请输入第一层:"))   # 主程序,开始运行
View Code

 


























以上是关于day1作业的主要内容,如果未能解决你的问题,请参考以下文章

Python实战作业-day1

day1-作业

Python学习day1作业

Python学习day1作业总结

实践作业4:Web测试----细化分工DAY1.

Python s12 Day1 笔记及作业