python编程 基础入门练习题一——登录接口及三级菜单
本节内容:
1、编写登陆接口
输入用户名密码
认证成功后显示欢迎信息
输错三次后锁定(需要用到文件)
2、多级菜单
三级菜单(省市县)
可依次选择进入各子菜单
所需新知识点:列表、字典
1.编写登陆接口
流程图:

代码:
1 #-*- coding:utf-8 -*- 2 #Author:'Yang' 3 4 users=['Rose'] 5 passwds=['abc123'] 6 7 8 count=0 9 while count<3: 10 username=input("用户名:") 11 password=input("密码:") 12 count+=1 13 if username==users[0] and password==passwds[0]: 14 print("%s 欢迎登陆" %username) 15 else: 16 print("无效的用户名密码。") 17 18 print("---------------------------------------------------------") 19 20 print("对不起,您的密码输入错误已达三次,账户被锁定,请联系客服。") 21 f=open('locked_file','a') 22 f.write("用户名 %s 已被锁定\n" %username) 23 f.close()
2.多级菜单
流程图:

代码:
1 #-*- coding:utf-8 -*- 2 #Author:'Yang' 3 4 5 data_dict={ 6 "上海":{ 7 "黄浦区":{}, 8 "徐汇区":{}, 9 "静安区":{}, 10 "虹口区":{} 11 }, 12 "江苏":{ 13 "南京":{ 14 "玄武区", 15 "白下区", 16 "鼓楼区" 17 }, 18 "无锡":{ 19 "崇安区", 20 "北塘区", 21 "锡山区", 22 "惠山区" 23 }, 24 "徐州":{ 25 "云龙区", 26 "泉山区", 27 "鼓楼区" 28 29 }, 30 "常州":{ 31 "天宁区", 32 "新北区", 33 "钟楼区" 34 } 35 }, 36 "浙江":{ 37 "杭州市":{ 38 "上城区", 39 "下城区", 40 "桐庐县" 41 }, 42 "宁波市":{ 43 "江北区", 44 "象山县", 45 "余姚市" 46 }, 47 "温州市":{ 48 "文成县", 49 "永嘉县", 50 "平阳县" 51 }, 52 "嘉兴市":{ 53 "嘉善县", 54 "海盐县", 55 "南湖区" 56 } 57 } 58 } 59 60 # for province in data_dict: 61 # print(province) 62 # for city in data_dict[province]: 63 # print("-",city) 64 # for town in data_dict[province][city]: 65 # print(" -",town) 66 67 province_choice=input("Please select Province:") 68 for province in data_dict: 69 if province_choice==province: 70 print(province_choice) 71 for city in data_dict[province_choice]: 72 print("-",city) 73 city_choice=input("Please select City:") 74 for town in data_dict[province_choice][city_choice]: 75 print(" -",town)
优化代码1:
1 #-*- coding:utf-8 -*- 2 #Author:'Yang' 3 4 import sys 5 6 data_dict={ 7 "上海":{ 8 "黄浦区":{}, 9 "徐汇区":{}, 10 "静安区":{}, 11 "虹口区":{} 12 }, 13 "江苏":{ 14 "南京":{ 15 "玄武区", 16 "白下区", 17 "鼓楼区" 18 }, 19 "无锡":{ 20 "崇安区", 21 "北塘区", 22 "锡山区", 23 "惠山区" 24 }, 25 "徐州":{ 26 "云龙区", 27 "泉山区", 28 "鼓楼区" 29 30 }, 31 "常州":{ 32 "天宁区", 33 "新北区", 34 "钟楼区" 35 } 36 }, 37 "浙江":{ 38 "杭州":{ 39 "上城区", 40 "下城区", 41 "桐庐县" 42 }, 43 "宁波":{ 44 "江北区", 45 "象山县", 46 "余姚市" 47 }, 48 "温州":{ 49 "文成县", 50 "永嘉县", 51 "平阳县" 52 }, 53 "嘉兴":{ 54 "嘉善县", 55 "海盐县", 56 "南湖区" 57 } 58 } 59 } 60 61 while True: 62 for province in data_dict: 63 print(province) 64 province_choice=input("请选择进入省\直辖市,选择q退出程序>>:") 65 if province_choice in data_dict: 66 while True: 67 for city in data_dict[province_choice]: 68 print("-",city) 69 city_choice=input("请选择进入市\区,选择b返回上一层,选择q退出程序>>:") 70 if city_choice in data_dict[province_choice]: 71 for town in data_dict[province_choice][city_choice]: 72 print(" -",town) 73 choice=input("最后一层,请选择b返回上一层,选择q退出程序>>:") 74 if choice=="b": 75 pass 76 elif choice=="q": 77 sys.exit() 78 if city_choice=="b": 79 break 80 elif city_choice=="q": 81 sys.exit() 82 if province_choice=="q": 83 sys.exit()
优化代码2:
1 #-*- coding:utf-8 -*- 2 #Author:'Yang' 3 4 ''' 5 #program summary# 6 多级菜单 7 三级菜单(省市县) 8 可依次选择进入各子菜单 9 所需新知识点:列表、字典 10 ''' 11 import sys 12 13 data_dict={ 14 "上海":{ 15 "黄浦":{"1"}, 16 "徐汇":{"2"}, 17 "静安":{"3"}, 18 "虹口":{"4"} 19 }, 20 "江苏":{ 21 "南京":{ 22 "玄武区", 23 "白下区", 24 "鼓楼区" 25 }, 26 "无锡":{ 27 "崇安区", 28 "北塘区", 29 "锡山区", 30 "惠山区" 31 }, 32 "徐州":{ 33 "云龙区", 34 "泉山区", 35 "鼓楼区" 36 37 }, 38 "常州":{ 39 "天宁区", 40 "新北区", 41 "钟楼区" 42 } 43 }, 44 "浙江":{ 45 "杭州":{ 46 "上城区", 47 "下城区", 48 "桐庐县" 49 }, 50 "宁波":{ 51 "江北区", 52 "象山县", 53 "余姚市" 54 }, 55 "温州":{ 56 "文成县", 57 "永嘉县", 58 "平阳县" 59 }, 60 "嘉兴":{ 61 "嘉善县", 62 "海盐县", 63 "南湖区" 64 } 65 } 66 } 67 68 while True: 69 for province in data_dict: 70 print(province) 71 #省\直辖市选择判断 72 province_choice=input("请选择进入省\直辖市,选择q退出程序>>:") 73 if province_choice in data_dict: 74 while True: 75 for city in data_dict[province_choice]: 76 print("-",city) 77 #市\区选择判断 78 city_choice=input("请选择进入市\区,选择b返回上一层,选择q退出程序>>:") 79 if city_choice in data_dict[province_choice]: 80 while True: 81 for town in data_dict[province_choice][city_choice]: 82 print(" -",town) 83 #最后一层选择判断 84 choice=input("最后一层,请选择b返回上一层,选择q退出程序>>:") 85 if choice=="b":#输入b返回上一层 86 pass 87 elif choice=="q":#输入q退出程序 88 sys.exit() 89 elif choice in data_dict[province_choice][city_choice]: 90 print("警告:这已经是最后一层!") 91 else: 92 print("无效输入,请重新输入!") 93 elif city_choice=="b":#输入b返回上一层 94 break 95 elif city_choice=="q":#输入q退出程序 96 sys.exit() 97 else: 98 print("无效输入,请重新输入!") 99 if province_choice=="q":#输入q退出程序 100 sys.exit() 101 else: 102 print("无效输入,请重新输入!")
~
浙公网安备 33010602011771号