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

三级菜单程序需求如下:

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. es snapshot备份到hdfs及从hdfs恢复snapshot

    snapshot可以将es整个集群,具体索引数据备份到磁盘,hdfs等.需要时,可以从磁盘,hdfs恢复数据到es. 具体参考: https://elasticsearch.cn/article/61 ...

  2. Sample Code之Web scene-slides

    这是我的第一篇随笔,在开始正文前说几句. 这个系列会记录我学习Arcgis js API 4.10的全过程,希望能对自己也对其他有需要的人有帮助.很多时候上网看一些大神的帖子会感到一头雾水,一是自己水 ...

  3. netcore使用IOptions

    { "Logging": { "LogLevel": { "Default": "Information", " ...

  4. 简单 hash 入门题目

    题目描述 NOIP 复赛之前,HSD 桑进行了一项研究,发现人某条染色体上的一段 DNA 序列中连续的 kkk 个碱基组成的碱基序列与做题的 AC 率有关!于是他想研究一下这种关系.现在给出一段 DN ...

  5. __init__.py在导包中起到的作用

    说明:__init__.py这个文件本人使用频率不高 例子: __init__.py文件作用:初始化这个包 1.v1.py def vi(): return 'views' 2.views->_ ...

  6. HBase二次开发之搭建HBase调试环境,如何远程debug HBase源代码

    版本 HDP:3.0.1.0 HBase:2.0.0 一.前言 之前的文章也提到过,最近工作中需要对HBase进行二次开发(参照HBase的AES加密方法,为HBase增加SMS4数据加密类型).研究 ...

  7. [bzoj4567] [loj#2012] [SCOI2016] 背单词

    Description \(Lweb\) 面对如山的英语单词,陷入了深深的沉思,「我怎么样才能快点学完,然后去玩三国杀呢?」.这时候睿智的凤老师从远处飘来,他送给了 \(Lweb\) 一本计划册和一大 ...

  8. CTF-Keylead(ASIS CTF 2015)

    将keylead下载到本地用7-ZIP打开,发现主要文件 keylead~ 在ubuntu里跑起来,发现是个游戏,按回车后要摇出3,1,3,3,7就能获得flag. 拖进IDA 直接开启远程调试,跑起 ...

  9. 【Oracle】分区表详解

    此文从以下几个方面来整理关于分区表的概念及操作: 1.表空间及分区表的概念     2.表分区的具体作用     3.表分区的优缺点     4.表分区的几种类型及操作方法     5.对表分区的维护 ...

  10. octave在win上和linux上配置syms

    octave是类似matlab的一个科学计算工具集.需要用到积分.微分.求导的时候,需要连接python3的sympy. windows上先安装好python3,然后pip安装Sympy.具体过程: ...