Day-1
用户登录
------------------------------------------------------------------------------------------
1、程序说明
实现功能如下
⑴用户输入账户密码进行登录
⑵用户信息保存在文件内
⑶用户密码输入错误三次后锁定用户
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
#!/usr/local/bin/python3 # -*- coding=utf-8 -*- dis = { 'qian1':{'password':'123','count':0}, 'qian2':{'password':'123','count':0}, 'qian3':{'password':'123','count':0}, } while True: name = input('username: ').strip() if name not in dis.keys(): print('用户名不存在') continue with open(r'C:\Users\bruce\Desktop\OldBoyPython作业\Day1\black_txt.txt','r') as f: txt = f.read() if name in txt: print('账号已被锁定') break if dis[name]['count'] > 2: print('尝试次数超过次数,已锁定!') with open(r'C:\Users\bruce\Desktop\OldBoyPython作业\Day1\black_txt.txt','w') as black_txt: black_txt.write('%s' % name) break password = input('password: ').strip() if password == dis[name]['password']: print('登录成功') break else: print('密码输入有误,请重新登录') dis[name]['count'] += 1
多级菜单
-----------------------------------------------------------
1、程序说明
实现功能如下
⑴运行程序输出第一级菜单
⑵选择一级菜单某项,输出二级菜单,同理输出三级、四级菜单
⑶菜单数据保存在文件中
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
#!/usr/local/bin/python3 # -*- coding=utf-8 -*- menu_dict = { '南京':{ '玄武区':{ '南麓':{'中山陵':1,'紫金山':2,'明孝陵':3}, '玄武湖':2, '总统府':3 }, '鼓楼区':{'阅江楼':1,'鼓楼公园':2,'幕府山':3}, '秦淮区':{'夫子庙':1,'秦淮河':2,'瞻园':3}, }, '上海':{ '徐汇区':{'徐家汇':1,'湖南路':2,'虹梅路':3}, '静安区':{'江宁':1,'静安寺':2,'南京西路':3}, '长宁区':{'江苏路':1,'天山路':2,'华阳路':3}, }, '江西':{ '南昌市':{'东湖区':1,'西湖区':2,'青云谱区':3}, '宜春市':{'丰城区':1,'高安市':2,'樟树市':3}, '九江市':{'庐山区':1,'瑞昌市':2,'永修县':3}, }, '北京':{'朝阳区':{'建外':{'赛特':1,'建国饭店':2}, '三里屯':2, '亚运村':3 }, '海淀区':{'中关村':1,'清华园':2,'白石桥':3}, '丰台区':{'北大地':1,'花乡桥':2,'长辛店':3}, } } dic_key = {} def menu_dict1(): while True: for keys,value in enumerate(menu_dict,1): with open('/home/qianzhiqiang/daima/daima/connect/Practice_Lab/for_exe/menu_txt.txt', 'a') as black_txt: black_txt.write('%s:%s\n' % (keys,value)) print(keys,value) dic_key[str(keys)] = value choice = input('请按数字进行选择([b]返回上一级,[q]退出):') if choice == 'q': quit() elif choice == 'b': print('已经到顶层了,不可以再回退!') elif not choice.isdigit(): print('请输入正确的数字') elif dic_key.get(choice): menu_dict2(dic_key[choice]) else: print('输入数字不正确,请重新输入') def menu_dict2(choice_1): while True: for keys_second , value_second in enumerate(menu_dict[choice_1],1): with open('/home/qianzhiqiang/daima/daima/connect/Practice_Lab/for_exe/menu_txt.txt', 'a') as black_txt: black_txt.write('%s:%s\n' % (keys_second,value_second)) print(keys_second,value_second) dic_key[str(keys_second)] = value_second choice_2 = input('请按数字进行选择([b]返回上一级,[q]退出):') if choice_2 == 'q': quit() elif choice_2 == 'b': menu_dict1() elif not choice_2.isdigit(): print('请输入正确的数字') elif dic_key.get(choice_2): menu_dict3(choice_1,dic_key[choice_2]) else: print('输入数字不正确,请重新输入') def menu_dict3(choice_1,choice_2): while True: for keys_thrid , value_thrid in enumerate(menu_dict[choice_1][choice_2],1): with open('/home/qianzhiqiang/daima/daima/connect/Practice_Lab/for_exe/menu_txt.txt', 'a') as black_txt: black_txt.write('%s:%s\n' % (keys_thrid,value_thrid)) print(keys_thrid,value_thrid) dic_key[str(keys_thrid)] = value_thrid choice_3 = input('请按数字进行选择([b]返回上一级,[q]退出):') if choice_3 == 'q': quit() elif choice_3 == 'b': menu_dict2(choice_1) elif not choice_3.isdigit(): print('请输入正确的数字') elif dic_key.get(choice_3): menu_dict4(choice_1,choice_2,dic_key[choice_3]) else: print('输入数字不正确,请重新输入') def menu_dict4(choice_1, choice_2, choice_3): res = menu_dict[choice_1][choice_2][choice_3] while True: if isinstance(res,int): choice_4 = input('已经是最底层了,请选择([b]返回上一级,[q]退出):') if choice_4 == 'q': quit() elif choice_4 == 'b': menu_dict3(choice_1, choice_2) else: for keys_four,value_four in enumerate(res , 1): with open('/home/qianzhiqiang/daima/daima/connect/Practice_Lab/for_exe/menu_txt.txt', 'a') as black_txt: black_txt.write('%s:%s\n' % (keys_four, value_four)) print(keys_four, value_four) dic_key[str(keys_four)] = value_four choice_5 = input('请按数字进行选择([b]返回上一级,[q]退出):') if choice_5 == 'q': quit() elif choice_5 == 'b': menu_dict3(choice_1, choice_2) elif not choice_5.isdigit(): print('请输入正确的数字') else: print('已经是最底层!') if __name__ == '__main__': menu_dict1()