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

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

多级菜单

#!/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)

字典常用操作

初识python: 字典的更多相关文章

  1. 孤荷凌寒自学python第十一天初识Python的字典类

    孤荷凌寒自学python第十一天初识Python的字典类 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) Python的字典其实是一张二维对照表 下面举例说明: 键名Key 姓名 性别 身高 ...

  2. python初识数据类型(字典、集合、元组、布尔)与运算符

    目录 python数据类型(dict.tuple.set.bool) 字典 集合 元组 布尔值 用户交互与输出 获取用户输入 输出信息 格式化输出 基本运算符 算术运算符 比较运算符 逻辑运算符 赋值 ...

  3. @1-2初识Python爬虫

    初识Python爬虫 Python爬虫(入门+进阶)     DC学院 环境搭建: Python2与Python3的差异:python2与python3整体差异不大,大多是一些语法上的区别,考虑到py ...

  4. 初识python(二)

    初识python(二) 1.变量 变量:把程序运行的中间结果临时的存在内存里,以便后续的代码调用. 1.1 声明变量: #!/usr/bin/env python # -*- coding: utf- ...

  5. 孤荷凌寒自学python第十七天初识Python的函数

    孤荷凌寒自学python第十七天初识Python的函数 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 函数是能够完成指定运算并返回运算结果的代码块.是结构化编程重要的结构. 我首先发现pyt ...

  6. 《初识Python之认识常量type函数》

    <初识Python之认识常量type函数> 1.2 认识常量 1.常量:我们用的就是它字面意义上的值或内容. 2.数字(Number) (1)整数表示:97. (2)浮点数表示:5.29 ...

  7. 自己动手实现 HashMap(Python字典),彻底系统的学习哈希表(上篇)——不看血亏!!!

    HashMap(Python字典)设计原理与实现(上篇)--哈希表的原理 在此前的四篇长文当中我们已经实现了我们自己的ArrayList和LinkedList,并且分析了ArrayList和Linke ...

  8. Python导出Excel为Lua/Json/Xml实例教程(一):初识Python

    Python导出Excel为Lua/Json/Xml实例教程(一):初识Python 相关链接: Python导出Excel为Lua/Json/Xml实例教程(一):初识Python Python导出 ...

  9. Python开发【第一篇】:初识Python

    初识python 一.python简介 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解 ...

  10. 菜鸟初识python request属性及方法说明

    if  request.REQUEST.has_key('键值'): HttpRequest对象的属性 参考: 表 H-1. HttpRequest对象的属性 属性 描述 path 表示提交请求页面完 ...

随机推荐

  1. Gitlab Flow到容器

    一.简介 长话短说,本文全景呈现我司项目组gitlab flow && devops Git Flow定义了一个项目发布的分支模型,为管理具有预定发布周期的大型项目提供了一个健壮的框架 ...

  2. Nginx配置重定向

    目录 一.简介 二.配置 访问a页面重定向到b页面 访问当前nginx,重定向到其他网址 一.简介 据相关变量重定向和选择不同的配置,从一个 location 跳转到另一个 location,不过这样 ...

  3. 一文详解 OpenGL ES 纹理颜色混合

    在OpenGL中绘制的时候,有时候想使新画的颜色和已经有的颜色按照一定的方式进行混合.例如:想使物体拥有半透明的效果,或者绘制叠加光亮的效果,这时候就需要用到OpenGLES混合. 如上图所示,为石头 ...

  4. View的简单说明

    一)三个结构体:CGPoint.CGSize.CGRect 1. CGPoint struct CGPoint { CGFloat x; CGFloat y; }; typedef struct CG ...

  5. 2020KCTF秋季赛签到题

    比赛平台:https://ctf.pediy.com/game-season_fight-158.htm 开场 签到题 例行检查,64位程序,无壳 试运行一下,看看大概的情况 64位ida载入,根据运 ...

  6. 误入 GitHub 游戏区,意外地收获颇丰

    这天中午,我和往常一样就着美食视频吃完午饭,然后起身泡了一杯"高沫". 我闻着茶香享受着午后的阳光,慵懒地坐在工位上习惯性的打开 GitHub 游荡,酝酿着睡意. 误打误撞,我来到 ...

  7. linux test使用

    文件 文件是否存在 test -f 判断文件是否存在 test -d 目录是否存在 test -e 文件名是否存在 通过echo $? 来得知test后的结果 test -f sh && ...

  8. Json解析案例-teachers数据集

    背景: 通过平台执行接口时,接口往往返回的JSON串,所以平台要能提供方便快捷的JSON解析函数. 一.Json字符串: 1 { 2 "lemon": { 3 "teac ...

  9. 一、Uniapp+vue+腾讯IM+腾讯音视频开发仿微信的IM聊天APP,支持各类消息收发,音视频通话,附vue实现源码(已开源)-项目引言

    项目文章索引 1.项目引言 2.腾讯云后台配置TXIM 3.配置项目并实现IM登录 4.会话好友列表的实现 5.聊天输入框的实现 6.聊天界面容器的实现 7.聊天消息项的实现 8.聊天输入框扩展面板的 ...

  10. JS使用html()获取html代码获取不到input、textarea控件填写的值

    我们可以重写一个方法 (function ($) { var oldHTML = $.fn.html; $.fn.formhtml = function () { if (arguments.leng ...