Python用字典构建多级菜单
相关知识点:
#key-value #字典是无序的,因为他没有下标,通过key找 info={ 'stu01':"liuhaolai", 'stu02':"wangshulin" } print(info['stu01']) info['stu03']='刘**'#若不存在该key,则直接添加 info['stu04']='王##' print(info) #del del info['stu03'] print(info) #pop info.pop('stu04') print(info) print(info.get('stu03'))#不确定字典里有没有时用 print('stu01' in info)#判断有没有 print(info.values())#打印值 print(info.keys())#打印key #字典的嵌套 place={ '辽宁':{ '大连':['很漂亮','很干净'], '沈阳':['很大','有些乱'], '阜新':['很小','很安逸'] }, '江苏':{ '南京':['省会','性价比极低'], '苏州':['古今结合','小桥流水'], '镇江':['有些乱','一般般'] } } print("------") print(place) place['江苏']['镇江'][1]='一般般啦' print(place) print(place.values())#打印值 print(place.keys())#打印key place.setdefault('河北',{'唐山:[0,1]'})#查,没有就添加,和get不同 print(place) print(place.setdefault('江苏',{'苏州:[0,1]'}))#查,没有就添加 info={ 'stu01':"liuhaolai", 'stu02':"wangshulin", 'stu03':'lucky', 'stu04':'pangpang' } new={ 'stu01':'david', 'stu02':'tree', 'stu05':'lala' } new.setdefault('stu03','david')#查,没有就添加 print(new) info.update(new)#将已有的覆盖更新,没有的创建 print(info) print(info.items())#字典转成列表 c=dict.fromkeys([6,7,8],[1,{"name":'number'}])#初始化一个新字典 print(c) #字典的循环 info2={ 'stu01':"liuhaolai", 'stu02':"wangshulin", 'stu03':'lucky', 'stu04':'pangpang' } print(info2.get('stu01')) print(info2.setdefault('stu01')) for i in info2:#推荐!!!!!! print(i,info[i]) print("------") for k,v in info2.items():#效果一样,但低效 print(k,v)
正文:
需求:
1.三级菜单
2.可依次选择进入各子菜单
3.按b逐级返回,按q退出
1 # Author:David Liu 2 # Be Happy! 3 4 place={ 5 '辽宁1':{ 6 '大连':{ 7 '甘井子区':['大连理工大学'], 8 '沙河口区':['数码广场'] 9 }, 10 }, 11 '辽宁2':{ 12 '沈阳': { 13 '皇姑区': ['辽宁大学'], 14 '铁西区': ['小树林'] 15 }, 16 }, 17 '辽宁3':{ 18 '阜新': { 19 '海州区':['胖胖来'], 20 '细河区':['细河区人民政府'] 21 } 22 } 23 } 24 exit_flag=True 25 while exit_flag: 26 for i in place: 27 print(i) 28 choice=input("选择进入,按q退出>>") 29 if choice in place: 30 while exit_flag: 31 for i2 in place[choice]: 32 print('\t',i2) 33 choice2=input("选择进入,按b返回,按q退出>>") 34 if choice2 in place[choice]: 35 while exit_flag: 36 for i3 in place[choice][choice2]: 37 print('\t\t', i3) 38 choice3 = input("选择进入,按b返回,按q退出>>") 39 if choice3 in place[choice][choice2]: 40 for i4 in place[choice][choice2][choice3]: 41 print('\t\t\t',i4) 42 choice4 = input("最后一层,按b返回,按q退出>>") 43 if choice4=='b': 44 pass#没用,占位的 45 elif choice4=='q': 46 exit_flag = False 47 if choice3 == 'b': 48 break 49 elif choice3 == 'q': 50 exit_flag = False 51 if choice2 == 'b': 52 break 53 elif choice2 == 'q': 54 exit_flag = False 55 elif choice == 'q': 56 exit_flag = False 57 print('\n',"已退出!".center(50,'-'))
2019年3月7日