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

三级菜单程序需求如下:

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. 初级程序员如何一分钟?解决一个BUG

    博主说明 -- 重要.重要.重要的事情说三遍 写这篇文章是主要锻炼写博客的能力以及记录自己的成长经历,要是写的不对欢迎大佬评论指正,同时希望对大家有所帮助.然后我写博客尽量简洁+图片+宏观的方式,便于 ...

  2. 【Think In Java笔记】第1章 对象导论

    1. 对象导论 OOP 面向对象编程 C.Basic等语言所在的抽象仍要求在解决问题时基于计算机的解决,而不是基于所解决问题的结构来考虑. 要建立起问题空间的元素和解空间的对象之间一一映射的关系 万物 ...

  3. Spring Boot2 系列教程 (十六) | 整合 WebSocket 实现广播

    前言 如题,今天介绍的是 SpringBoot 整合 WebSocket 实现广播消息. 什么是 WebSocket ? WebSocket 为浏览器和服务器提供了双工异步通信的功能,即浏览器可以向服 ...

  4. pip 下载源更换

    Python博大精深之处在于丰富的库,而目前最方便的下载库的方法无疑是pip.但是由于国内的网络环境导致,好多库下载是在太慢了,原因大家都懂得.. 一.临时修改 使用pip的时候加入参数 -i pip ...

  5. java通过word模板生成word文档

    介绍 上次公司项目需要一个生成word文档的功能,有固定的模板根据业务填充数据即可,由于从来没做过,项目也比较着急于是去网上找有没有合适的工具类,找了好几种,看到其中有freeMark模板生成比较靠谱 ...

  6. async-await 线程分析

    这里没有线程 原文地址:https://blog.stephencleary.com/2013/11/there-is-no-thread.html 前言 我是在看 C#8.0 新特性异步流时在评论里 ...

  7. MongoDB 官方文档中的 aggregate 例子当中的 $sum: 1 , 这里的 1 起什么作用?

    按照 group 的条件, 满足一条就加1, db.getCollection('user_login_info').aggregate( [ {$project:{account_id:" ...

  8. Unity事件系统EventSystem简析

    相关组件和类 EventSystem 1.负责InputModule的切换(因为现在游戏大部分都只有一个StanaloneInputModule,所以切换这部分可以先不考虑). 2.负责InputMo ...

  9. C# 实现验证码识别,使用AspriseOCR.dll

    验证码(Captcha)基于十道安全栅栏, 为网页.App.小程序开发者打造立体.全面的人机验证,最大程度地保护注册登录.活动秒杀.点赞发帖.数据保护等各大场景下的业务安全.要做自动化脚本程序,就要能 ...

  10. Java入门 - 语言基础 - 10.条件语句

    原文地址:http://www.work100.net/training/java-if-else.html 更多教程:光束云 - 免费课程 条件语句 序号 文内章节 视频 1 概述 2 if...e ...