使用数据字典,编写一个多级菜单:

需求:每一级可返回上级,可退出。

多级菜单

#!/user/bin env python
# author:Simple-Sir
# time:20180915
# 使用字典实现多级菜单
sheng = {
'四川省':{
'成都':{
'高新区':['第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条信息;','第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条信息;','第3条信息。']
}
}
}
t = True
while t:
for i in sheng:
print(i)
choice = input('选择进入省(Q退出):')
if choice in sheng:
while t:
for i2 in sheng[choice]:
print('\t',i2)
choice2 = input('选择进入市(B返回上级,Q退出):')
if choice2 in sheng[choice]:
while t:
for i3 in sheng[choice][choice2]:
print('\t\t',i3)
choice3 = input('选择进入县(B返回上级,Q退出):')
if choice3 in sheng[choice][choice2]:
while t:
for i4 in sheng[choice][choice2][choice3]:
print('\t\t\t', i4)
choice4 = input('选择B返回上级,Q退出:')
if choice4.upper() == 'B':
break
elif choice4.upper() == 'Q':
exit()
elif choice3.upper() == 'B':
break
elif choice3.upper() == 'Q':
exit()
else:
print('您输入的区县不存在,请重新输入!')
elif choice2.upper() == 'B':
break
elif choice2.upper() == 'Q':
exit()
else:
print('您输入的地市不存在,请重新输入!')
elif choice.upper() == 'Q':
exit()
else:
print('您输入的省份不存在,请重新输入!')

执行结果:

数据字典常用操作:

#!/user/bin env python
# author:Simple-Sir
# time:20180915
# 字典基础 dict_1 = {
'1': 'a',
'2': 'b',
'3': 'c'
}
print(dict_1['1']) #获取key对应的值,只能获取已存在的值
print(dict_1.get('4')) #若存在,则获取值,若不存在,返回 None
print('1' in dict_1) # 判断指定值是否存在字典中
print(dict_1.values()) #获取所有值
print(dict_1.keys()) #获取所有键 dict_1['4']='d' #若存在则修改,若不存在则添加 dict_1.setdefault('1','aa') #若键已存在,则不创建 ;若不存在,则新建。
dict_1.setdefault('11','aa') #若键已存在,则不创建 ;若不存在,则新建。 del dict_1['1'] #删除指定key对应的值
dict_1.pop('4') #删除指定key对应的值
dict_1.popitem() #随机删除一个值 dict_2={
'1':'aa',
'22':'bb',
'33':'cc'
}
dict_1.update(dict_2) #剔重合并2个字典
print(dict_1)
print(dict_1.items()) #将字典变成列表 a = dict.fromkeys([5,6,7],['v1','v2','v3']) #新建一个新的字典,并初始化一个值
a[5][0]='va1' #会统一修改,类似浅copy
print(a) # 字典循环
# 方法一
dict_3 = {
'1': 'a',
'2': 'b',
'3': 'c'
}
for i in dict_3: # i 对应字典的键
print(i,dict_3[i]) # 方法二(不建议)
for k,v in dict_3.items(): #将字典转换成列表,再循环
print('方法二:',k,v) # 多级字典嵌套
sheng = {
'四川省':{
'成都':['高新区','天府新区','武侯区']
}
}
sheng['四川省']['成都'][0]='成华区' #多级字典修改
print(sheng)

字典常用操作

最新文章

  1. Paxos算法与Zookeeper分析
  2. document.body / document.ducumentElement /等获取高度和宽度的区别 ----转载
  3. 关于linux密码忘记问题解决方法
  4. 如何杀掉D状态的进程?[zt]【转】
  5. IIS OCIEnvCreate failed with return code -1
  6. Java多线程——<一>概述、定义任务
  7. (转)UIColor 的使用
  8. WPF 制作圆角按钮
  9. Sencha Touch学习(一)
  10. 【一天一道LeetCode】#88. Merge Sorted Array
  11. LeetCode之“字符串”:Restore IP Addresses
  12. Linux自定义分隔符IFS引发的文本处理问题
  13. SpringMVC用到的jar包
  14. SQL注入与防范
  15. Spark Submitting Applications浅析
  16. c++编程之内存的分配
  17. Geekers团队成立日志
  18. springcloud与dubbo对比:
  19. poj 3368 rmq ***
  20. Elasticsearch 基础理论 & 配置调优

热门文章

  1. Vector Bin Packing 华为讲座笔记
  2. Apache log4j2 远程代码执行漏洞复现👻
  3. 持续部署CI/CD
  4. Python语法入门之与用户交互、运算符
  5. ciscn_2019_en_3
  6. [BUUCTF]REVERSE——[GWCTF 2019]pyre
  7. C++11新特性:enable_shared_from_this
  8. libevent实现多线程
  9. 使用 juqery.media.js 实现 pdf 预览
  10. JAVA执行cmd命令方法