DAY.15_Python
昨天完成了三级菜单和购物车程序的作业:
""" .__author__.=,"JerseyHg" 作业要求:1. 可依次选择进入到下一级菜单;2. 可从任意i一层往回退到上一层;3. 可从任意一层退出程序。 思路:1. 定义字典; 2. while [如果一直没有按退出键,则一直true,循环继续——保证即使不输入,程序也不停地在运行]; 3. 打印出字典中第一级——key [for 语句]; 4. 让用户输入选择 a. 进入到下一级 b. 当按返回键时——按返回键,会定义此循环false——退出此循环,进入循环同等级的下一条语句——此条语句的目的则为定义该返回键为true,以免导致上一级的循环也被false; c. 当按中断键时——按终止键,则不再在结束此级循环的语句下加定义终止状态为true,以确保终止此次循环后,在返回上一级循环的时候仍旧为false,继续终止循环,直到退出所有的循环,结束程序。"""menu = { '北京': { '海淀': { '五道口': { 'soho': {}, '网易': {}, 'google': {} }, '中关村': { '爱奇艺': {}, '汽车之家': {}, '优酷': {} }, '上地': { '百度': {} } }, '昌平':{ '沙河': { '老男孩': {}, '北航': {} }, '天通苑': {}, '回龙观': {} }, '朝阳': {}, '东城': {} }, '上海': { '闵行': { '人民广场': { '炸鸡店': {} } }, '闸北': { '火车站': { '携程': {} } }, '浦东': {} }, '山东': {}}——————————————————————————————————————————————————————黄色部分是设置的字典部分,以供下面程序进行查询——————————————————————————————————————————————q = TrueQ = True——————————————————————————————————————————————————————红色部分的作用是为了提供了bool变量,使while循环语句进行相应的判断,如果用户在想返回上一级菜单的时候,那么就在提示的时候键入q,如果想退出程序就键入Q(虽然这里两个变量都是True,但是如果键入后 while q and Q: # 判断有没有按退出键,如果没有按,则进行第一级while循环 for i in menu: print(i) province = input('请输入你要查找的省份或者输入Q退出程序:') # 输入你想要查询的城市名称 if province in menu: # 如果你上一步输入的城市名称在menu字典中,那么进行下一级的城市搜索中———————————————————————————————————————————————————————绿色部分的作用是 1.如果判断条件是True,那么久进入以下的循环;—————————————————————————————————————————————————————————————————————————————————————————————— 2.首先将menu字典的第一级key打印出来,以供用户选择; 3.判断用户是否输入的是第一级key中的值,如果是的,则进入下一级菜单;
while q and Q: for city in menu[province]: print(city) city = input('请输入你要查找的城市或者输入q返回,Q退出程序:') if city in menu[province]: # 如果输入的内容在city列表里面,那么就进行区的检索,或者输入的值是q则跳出此级循环,返回上一级菜单,或者输入的为Q,那么就跳出整个循环;
——————————————————————————————————————————————————————蓝色部分的作用是 1.如果判断条件是True,那么久进入以下的循环;————————————————————————————————————————————————————————————————————————————————————————————————
2.首先将menu字典的第一级key打印出来,以供用户选择; 3.判断用户是否输入的是第一级key中的值,如果是的,则进入下一级菜单;
while q and Q: for district in menu[province][city]: print(district) district = input('请输入你要查找的街道或者输入q返回,Q退出程序') if district in menu[province][city]:
——————————————————————————————————————————————————————橙色部分的作用是 1.如果判断条件是True,那么久进入以下的循环;
2.首先将menu字典的第一级key打印出来,以供用户选择; 3.判断用户是否输入的是第一级key中的值,如果是的,则进入下一级菜单;
while q and Q: for place in menu[province][city][district]: print(place) place = input('已经到达最后一页,按q返回,Q退出程序:') if place == 'q': q = False elif place == 'Q': Q = False else: print('输入错误!') q = True———————————————————————————————————————————————————————对应上面黑色部分 1.如果判断条件是True,那么久进入以下的循环;
2.首先将menu字典的第一级key打印出来,以供用户选择; 3.判断用户是否输入的是第一级key中的值,如果是的,则进入下一级菜单;
4.如果判断出用户输入的是q,那么就使bool变量q变为False(这么做的原因是可以让程序再次进入该层while判断的时候,能够让退出该层循环)*****但是需要注意的是,q的作用只是退出该层循环,返回到上层中,所以我们再结束该层while循环的后面,需要加上让q重新返还成True的语句,以免导致继续向上层退出循环*****
5.如果判断出用户输入的是Q,那么就使bool变量Q变为False,让程序跳出while循环
6.如果判断用户输入的值,不属于以上3,4中的任何值,那么就输出“用户输入错误!”
elif district == 'q': q = False elif district == 'Q': Q = False else: print('输入错误!') q = True———————————————————————————————————————————————————————对应上面蓝色部分 4.如果判断出用户输入的是q,那么就使bool变量q变为False(这么做的原因是可以让程序再次进入该层while判断的时候,能够让退出该层循环)*****但是需要注意的是,q的作用只是退出该层循环,返回到上层中,所以我们再结束该层while循环的后面,需要加上让q重新返还成True的语句,以免导致继续向上层退出循环*****
5.如果判断出用户输入的是Q,那么就使bool变量Q变为False,让程序跳出while循环
6.如果判断用户输入的值,不属于以上3,4中的任何值,那么就输出“用户输入错误!”
elif city == 'q': # 如果输入的是q,则将q的值变为false,以此让while循环判断为false,跳出此次循环,跳出了此次循环后,要将上一级while的q改为true q = False elif city == 'Q': Q = False else: print('输入错误!') q = True——————————————————————————————————————————————————————对应上面蓝色部分 4.如果判断出用户输入的是q,那么就使bool变量q变为False(这么做的原因是可以让程序再次进入该层while判断的时候,能够让退出该层循环)*****但是需要注意的是,q的作用只是退出该层循环,返回到上层中,所以我们再结束该层while循环的后面,需要加上让q重新返还成True的语句,以免导致继续向上层退出循环*****
5.如果判断出用户输入的是Q,那么就使bool变量Q变为False,让程序跳出while循环
6.如果判断用户输入的值,不属于以上3,4中的任何值,那么就输出“用户输入错误!”
elif province == 'Q': Q = False else: print('输入错误')
———————————————————————————————————————————————————————对应上面绿色部分 4.如果判断出用户输入的是Q,那么就使bool变量Q变为False,让程序跳出while循环———————————————————————————————————————————————————————————————————————————————————— 5.如果判断用户输入的值,不属于以上3,4中的任何值,那么就输出“用户输入错误!”
DAY.15_Python的更多相关文章
- 15_Python函数名本质
函数名的本质 函数名实质上就是函数的内存地址 def wrapper(): pass print(wrapper) 1.引用是什么? 当我们定义a=1的时候,系统会开辟一块内存空间来保存1,然后用a变 ...
- 15_Python模块化编程_Python编程之路
之前跟大家讲的是一些python的数据基础,从这篇文章开始,我们开始正式学习python的模块化编程 下面我们解释一下什么叫做模块 之前已经讲过怎么去定义一个方法,如果你是用python交互器(自带交 ...
- 【Python基础】15_Python中的变量-进阶
1.引用的概念 2.可变类型和不可变类型 3.哈希
- 15_Python的模块module
1.模块的概述 1.模块是Python程序架构的一个核心概念,每一个以.py结尾的Python源代码文件都是一个模块 2.模块名和标识符的命名规则一样,由数字字母下划线组成且不能以数字开头,也不要和系 ...
- python学习——读取染色体长度(七:读取fasta文件)
读取fasta文件genome_test.fa,并计算染色体总长,同时输出最长染色体编号.序列以及长度 fasta文件genom_test.fa的内容如下: >chr1ATATATATAT> ...
随机推荐
- 【tensorflow:Google】二、Tensorflow环境搭建
2.1 Tensorflow 主要依赖包 2.1.1 Protocol Buffer 结构化数据序列化的过程,另外的工具:XML, JSON, 区别:二进制(不可读):先定义数据格式,还原的时候将需要 ...
- 关于socket绑定INADDR_ANY
其中INADDR_ANY就是指定地址为0.0.0.0的地址,这个地址事实上表示不确定地址,或“所有地址”.“任意地址”. 一般情况下,如果你要建立网络服务器,则你要通知服务器操作系统:请在某地址 xx ...
- Electron 使用 Webpack2 打包应用程序
Electron 使用 Webpack2 打包应用程序 前两天看了一下使用 Electron 来开发应用程序,今天说说所怎样集成 Electron 和 Webpack2 来打包应用程序. 安装依赖库 ...
- 【Java】Java学习笔记
教程 计算机所有的数据信息都是由二进制的0,1组成的,B(Byte)就是字节,1B=8bit(位),2的10次幂是1024,我们所说的硬盘容量是40GB.80GB.160GB,这里的B指是的Byte也 ...
- HDU - 6433: H. Pow (简答题,输出大数)
There are n numbers 3^0, 3^1, . . . , 3^n-1. Each time you can choose a subset of them (may be empty ...
- 《.NET程序员面试秘籍》读书笔记
1. 简述 private. protected. public. internal 修饰符的访问权限. private :设置类或类的成员为私有,在类的内部才可以访问.有时要访问私有成员时,可通过g ...
- Hexo博客网站再配置
这两天整理网站方面的事,本地IIS部署,个人网站,发现我的hexo做的个人网站实在很单调,于是找来资料做进一步的配置. 一.网站图标 看一下hexo\themes\modernist\layout\_ ...
- asp.net 操作共享目录文件
背景: 服务器A为程序服务器,服务器B为文件服务器.服务器A的程序需要修改删除服务器B的文件. 实现方式:采用虚拟目录映射 操作步骤: 1.在服务器A与服务器B建立相同账号和密码的windows用户 ...
- WCF服务引用时错误: 无法导入 wsdl:portType详细信息
WCF服务发布到IIS后,在客户端或WCFTestClient添加引用的时候报错如下: 错误: 无法导入 wsdl:portType详细信息: 在运行 WSDL 导入扩展时引发异常: System.S ...
- LOJ2823 「BalticOI 2014 Day 1」三个朋友
题意 给定一个字符串 S,先将字符串 S 复制一次(变成双倍快乐),得到字符串 T,然后在 T 中插入一个字符,得到字符串 U. 给出字符串 U,重新构造出字符串 S. 所有字符串只包含大写英文字母. ...