学习了字典的应用。按老师的要求写一个三级菜单程序。

三级菜单程序需求如下:

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)字典学习,写一个三级菜单程序的更多相关文章

  1. python学习,day1作业:设计一个三级菜单

    设计一个三级菜单,要求能够下钻,能够推出,比较笨的方法 # coding=utf-8 # Author: RyAn Bi data = { 'beijing':{ 'changping':{ 'wud ...

  2. Android:日常学习笔记(2)——分析第一个Android应用程序

    Android:日常学习笔记(2)——分析第一个Android应用程序 Android项目结构 整体目录结构分析 说明: 除了APP目录外,其他目录都是自动生成的.APP目录的下的内容才是我们的工作重 ...

  3. 用jQuery做一个三级菜单,鼠标移动到二级菜单的选项上,然后再迅速离开后,当鼠标再移动到该一级菜单或其他二级菜单选项,三级菜单也会显示。

    用jQuery做一个三级菜单,鼠标移动到二级菜单的选项上,然后再迅速离开后,当鼠标再移动到该一级菜单或其他二级菜单选项,三级菜单也会显示. 原因:在为一个元素绑定hover事件之后,用户把光标移入元素 ...

  4. 4.写一个控制台应用程序,接收一个长度大于3的字符串,完成下列功能: 1)输出字符串的长度。 2)输出字符串中第一个出现字母a的位置。 3)在字符串的第3个字符后面插入子串“hello”,输出新字符串。 4)将字符串“hello”替换为“me”,输出新字符串。 5)以字符“m”为分隔符,将字符串分离,并输出分离后的字符串。 */

    namespace test4 {/* 4.写一个控制台应用程序,接收一个长度大于3的字符串,完成下列功能: 1)输出字符串的长度. 2)输出字符串中第一个出现字母a的位置. 3)在字符串的第3个字符 ...

  5. python学习10字典

    '''''''''字典(Dict)是python语言的一个最大的特征1.定义:是可变的无序集合,以键值对为基本元素,可以存储各种数据类型2.表示:{} 列表:[] 元组 () 字符串 ‘’ “” ‘‘ ...

  6. 是否有必要学习使用纯Verilog写一个SDRAM控制器

    在做这个SDRAM控制器之前,博主有一个疑问,对于学生来说,是否有必要学习用纯Verilog写一个SDRAM控制器?因为目前X家和A家都有了DDR IP Core,对于要实现一个应用可以直接调用IP ...

  7. [C#学习笔记1]用csc.exe和记事本写一个C#应用程序

    csc.exe是C#的命令行编译器(CSharpCompiler),可以编译C#源程序成可执行程序.它与Visual Studio等IDE(Integrated Development Environ ...

  8. vnpy源码阅读学习(4):自己写一个类似vnpy的UI框架

    自己写一个类似vnpy的界面框架 概述 通过之前3次对vnpy的界面代码的研究,我们去模仿做一个vn.py的大框架.巩固一下PyQt5的学习. 这部分的代码相对来说没有难度和深度,基本上就是把PyQt ...

  9. tensorflow学习笔记3:写一个mnist rpc服务

    本篇做一个没有实用价值的mnist rpc服务,重点记录我在调试整合tensorflow和opencv时遇到的问题: 准备模型 mnist的基础模型结构就使用tensorflow tutorial给的 ...

随机推荐

  1. Java8 新特性(一)- Lambda 表达式

    2014年3月18日发布了JavaSE 8 不追求技术的新,追求技术的稳定 本质:Lambda 表达式是一个匿名函数 作用:简化代码,增强代码的表达力 Lambda 语法格式 // 格式1:无参无返回 ...

  2. 【转】在MyEclipse 8.6上搭建Android开发环境

    内容导航 第 1 页:基本环境准备 第 2 页:下载Android SDK 第 3 页:配置SDK环境变量 第 4 页:给MyEclipse安装ADT插件 第 5 页:配置MyEclipse 第 6 ...

  3. Map2Shp软件字符编码解决方案——彻底杜绝Shape格式乱码

    在使用Shape文件时,如果里面有中文属性信息时,经常会遇到属性信息变为乱码.尤其是ArcGIS10.2.1之后,Esri改变了软件的默认字符编码规则,打开之前保存的Shapefile文件,总会不时遇 ...

  4. 【设计模式】 (2)关于UML

    UML -- Unified Modeling Lanaguage(统计建模语言),是一种软件系统分析和设计的语言工具,他用于帮助软件开发人员进行思考和记录思路的结果. UML本身是一套符号的规定,就 ...

  5. P4550 收集邮票

    P4550 收集邮票 题目描述 有n种不同的邮票,皮皮想收集所有种类的邮票.唯一的收集方法是到同学凡凡那里购买,每次只能买一张,并且买到的邮票究竟是n种邮票中的哪一种是等概率的,概率均为1/n.但是由 ...

  6. Tarjin + 缩点

    链接:https://www.nowcoder.com/acm/contest/81/C来源:牛客网 题目描述 给出一个 0 ≤ N ≤ 105 点数.0 ≤ M ≤ 105 边数的有向图, 输出一个 ...

  7. Lambda表达式(lambda expression)⭐⭐⭐⭐⭐

    原作者 lambda表达式(lambda expression)实际上是匿名函数一种表示形式, 即没有函数名的函数:参数列表=>表达式或语句块,在我看来主要目是为了简化代码编写,提高代码可读性而 ...

  8. CDH安装详细测试正确

    1. CDH简介 简单来说,Cloudera Manager是一个拥有集群自动化安装.中心化管理.集群监控.报警功能的一个工具(软件),使得安装集群从几天的时间缩短在几个小时内,运维人员从数十人降低到 ...

  9. Docker学习(三)认识Docker和常用命令

    Docker学习(三)认识Docker和常用命令 Docker体系结构 docker服务端,作为服务的提供方,核心进程 docker daemon,所有docker命令都是通过这个进程完成的 REST ...

  10. 关于爬虫的日常复习(14)—— 爬虫beautifulsoup的初级高级的基本用法