python学习(10)字典学习,写一个三级菜单程序
学习了字典的应用。按老师的要求写一个三级菜单程序。
三级菜单程序需求如下:
1、深圳市的区--街道--社区---小区4级
2、建立一个字典,把各级区域都装进字典里
3、用户可以从1级进入2级再进入3级
4、用户按B键可以返回,按Q键退出
经验总结:
(1)写这个程序,又花了半天,开始每次出现print只打印一行的情况。反复想出错在哪里,后面发现choice放在print后面才会出错。以后一定要注意python的格式。python格式要求比较简单,所以必须要注意嵌套格式,特别涉及到多重循环,一个空格就能让程序出错。
(2)这个程序对于我理解多重循环语句和字典,很有帮助。
(3)正如老师说的,用最LOW的方法写的这个程序是为了以后用高大上的方法写,如果LOW的方式都写不好,更别提高大上的方式了。
(4)很喜欢python,越写越喜欢。老师说,当你写几百万条代码的时候,你就牛逼了。哈哈,自勉吧!
程序如下:
# -*- coding: UTF-8 -*-
# Author:show530 date={
'罗湖':{
"东晓街道":{
"东晓社区":["今日家园","阳光明居","泰和花园"],
"布心社区":["彩世界","布心花园","东晓花园"],
"水库社区":["宝湖花园","水库家园","宝丰源"]
},
"东湖街道":{
"东乐社区":["东乐花园","百仕达一期","百仕达二期"],
"翠鹏社区":["翠鹏花园","名仕达","泰宁豪苑"],
"金鹏社区":["金鹏花园","天御境界","华都馨苑"]
},
"东门街道":{
"湖贝社区":["木头龙小区","深业大厦","花都院"],
"螺岭社区":["万众豪苑","缤纷时代家园","金城华庭"],
"东门社区":["东门168","立新花园","万科彩园"]
}
},
'福田':{
"福田街道":{
"福华社区":["皇岗新村","皇御苑","共和世家"],
"福民社区":["福民新村","绿茵阁","福涛东园"],
"华强社区":["华强花园","红荔村","长泰花园"]
},
"园岭街道":{
"园岭社区":["园岭新村","盛世鹏程","鸿翔花园"],
"红岭社区":["桂木园小区","红岭新村","荔香坊"],
"百花社区":["长城花园","核电花园","国城花园"]
},
"梅林街道":{
"上梅林社区":["颐林雅院","中康生活","梅林四村"],
"下梅林社区":["梅林一村","梅林二村","书香门第"],
"银湖社区":["银湖谷","金景花园","金湖花园"]
}
}
} while True:
for i in date:
print(i)
choice=input("\n请输入您的选择1:")
if choice in date:
while True:
for j in date[choice]:
print("\t",j)
choice2=input("\n请输入您的选择2:")
if choice2 in date[choice]:
while True:
for k in date[choice][choice2]:
print("\t\t",k)
choice3 = input("\n请输入您的选择3:")
if choice3 in date[choice][choice2]:
while True:
for l in date[choice][choice2][choice3]:
print("\t\t\t",l)
choice4=input("\n最后一层,按B键返回上一层菜单:")
if choice4=="B":
break
elif choice4=="Q":
exit()
if choice3 == "B":
break
elif choice3 == "Q":
exit()
if choice2 == "B":
break
elif choice2 == "Q":
exit()
if choice == "B":
break
elif choice == "Q":
exit()
python学习(10)字典学习,写一个三级菜单程序的更多相关文章
- python学习,day1作业:设计一个三级菜单
设计一个三级菜单,要求能够下钻,能够推出,比较笨的方法 # coding=utf-8 # Author: RyAn Bi data = { 'beijing':{ 'changping':{ 'wud ...
- Android:日常学习笔记(2)——分析第一个Android应用程序
Android:日常学习笔记(2)——分析第一个Android应用程序 Android项目结构 整体目录结构分析 说明: 除了APP目录外,其他目录都是自动生成的.APP目录的下的内容才是我们的工作重 ...
- 用jQuery做一个三级菜单,鼠标移动到二级菜单的选项上,然后再迅速离开后,当鼠标再移动到该一级菜单或其他二级菜单选项,三级菜单也会显示。
用jQuery做一个三级菜单,鼠标移动到二级菜单的选项上,然后再迅速离开后,当鼠标再移动到该一级菜单或其他二级菜单选项,三级菜单也会显示. 原因:在为一个元素绑定hover事件之后,用户把光标移入元素 ...
- 4.写一个控制台应用程序,接收一个长度大于3的字符串,完成下列功能: 1)输出字符串的长度。 2)输出字符串中第一个出现字母a的位置。 3)在字符串的第3个字符后面插入子串“hello”,输出新字符串。 4)将字符串“hello”替换为“me”,输出新字符串。 5)以字符“m”为分隔符,将字符串分离,并输出分离后的字符串。 */
namespace test4 {/* 4.写一个控制台应用程序,接收一个长度大于3的字符串,完成下列功能: 1)输出字符串的长度. 2)输出字符串中第一个出现字母a的位置. 3)在字符串的第3个字符 ...
- python学习10字典
'''''''''字典(Dict)是python语言的一个最大的特征1.定义:是可变的无序集合,以键值对为基本元素,可以存储各种数据类型2.表示:{} 列表:[] 元组 () 字符串 ‘’ “” ‘‘ ...
- 是否有必要学习使用纯Verilog写一个SDRAM控制器
在做这个SDRAM控制器之前,博主有一个疑问,对于学生来说,是否有必要学习用纯Verilog写一个SDRAM控制器?因为目前X家和A家都有了DDR IP Core,对于要实现一个应用可以直接调用IP ...
- [C#学习笔记1]用csc.exe和记事本写一个C#应用程序
csc.exe是C#的命令行编译器(CSharpCompiler),可以编译C#源程序成可执行程序.它与Visual Studio等IDE(Integrated Development Environ ...
- vnpy源码阅读学习(4):自己写一个类似vnpy的UI框架
自己写一个类似vnpy的界面框架 概述 通过之前3次对vnpy的界面代码的研究,我们去模仿做一个vn.py的大框架.巩固一下PyQt5的学习. 这部分的代码相对来说没有难度和深度,基本上就是把PyQt ...
- tensorflow学习笔记3:写一个mnist rpc服务
本篇做一个没有实用价值的mnist rpc服务,重点记录我在调试整合tensorflow和opencv时遇到的问题: 准备模型 mnist的基础模型结构就使用tensorflow tutorial给的 ...
随机推荐
- forkjoin及其性能分析,是否比for循环快?
最近看了网上的某公开课,其中有讲到forkjoin框架.在这之前,我丝毫没听说过这个东西,很好奇是什么东东.于是,就顺道研究了一番. 总感觉这个东西,用的地方很少,也有可能是我才疏学浅.好吧,反正问了 ...
- 数字金字塔 动态规划(优化版) USACO 一维dp压缩版
1016: 1.5.1 Number Triangles 数字金字塔 时间限制: 1 Sec 内存限制: 128 MB提交: 9 解决: 8[提交] [状态] [讨论版] [命题人:外部导入] 题 ...
- python 枚举类型
在python中枚举是一种类(Enum,IntEnum),存放在enum模块中.枚举类型可以给一组标签赋予一组特定的值. 枚举的特点: 枚举类中不能存在相同的标签名 枚举是可迭代的 不同的枚举标签可以 ...
- vue基础中的注意事项,以及一些学习心得
vue中你不知道的东西.以及注意事项 v-html 使用 v-html的时候该指令中的值会覆盖绑定标签中原有的值,且使用v-html的时候不要将他设置为给用户提供内容的地方,因为v-html很容易被X ...
- 最大区间和变形 - codeforces
题意 : 可以选择操作一串区间,将区间内的某一个数全部变成一个新的数字,询问整个区间中某个数字的出现次数总共有多少个? 思路分析 : 首先最后选的一定是一个区间,然后 ans = cnt(1, l-1 ...
- dubbo配置文件解读(1)
详细的Dubbo配置也可以参考:https://blog.csdn.net/abcde474524573/article/details/53026110 (1)<dubbo:service/& ...
- P1559 运动员最佳匹配问题 by hyl 天梦
#include<iostream> using namespace std; int n; int maxx[21][21]; int lie[21]; int aa[21]; int ...
- 部署Maven项目到tomcat报错:java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderLi
Maven项目下update maven后Eclipse报错:java.lang.ClassNotFoundException: ContextLoaderL 严重: Error config ...
- python类型-序列-元组
元组是一种不可变类型,元组可用作一个字典的key. 1.创建一个元组并进行赋值 atuple = (123, 'abc', ('inner', 'tuple'), 7-9j) 2.访问元组中的值 元组 ...
- linux操作系统下调试python代码方法
一.python有调试工具pdb,可以用来进行代码调试. pdb的常用命令说明: l #查看运行到哪行代码 n #单步运行,跳过函数 s #单步运行,可进入函数 p 变量 #查看变量值 b 行号 #断 ...