# -*- coding: utf-8 -*-#-*- 2017/07/13 -*-#-*- Create by ChaiMeng#多级菜单

import sys

multi_city = {'安徽省':{'合肥市':{'蜀山区':'安徽农业大学'}},'湖北省':{'武汉市':{'东湖区':'武汉大学'}},'河南省':{'开封市':{"龙亭区:河南大学"}}}  #添加多级字典(字典的嵌套),以省、市、区、学校为例print("按q返回上一层")  #打印提示信息print("按e退出")  #打印提示信息

# print(multi_city['安徽省']['合肥市'])# for i in multi_city['安徽省']['合肥市']:#     print (i)    #以上三行为调试信息,主要确认多级字典(字典的嵌套)的输出

ec = 'q'   #预定义变量ex = 'e'   #预定义变量first_class_flag = True   #定义一级菜单的标志位,后续可以通过该标记为退出多级循环,本例为在一级循环中体现,在二级、三级循环中体现了

while first_class_flag:   #定义一级循环    for first_class in multi_city.keys():   #打印多级字典中省级目录        print(first_class)    first_class_input = input("请输入省份1>>>: ")   #提示用户输入省份    if first_class_input in multi_city.keys():   #判断用户输入的省份是否在改字典的key中        for first_class_province in multi_city[first_class_input].keys():  #如果用户输入的数据在字典的省份中,则打印市区名称            print (first_class_province)            second_class_flag = True  #定义二级菜单的标志位,后续可以通过改变标志位的布尔值,来退出二级循环        while second_class_flag:  #进入二级循环            second_class_input = input("请输入市名2>>>: ")  #提示输入市名称            if second_class_input in multi_city[first_class_input].keys():  #判断用户输入的市名是否在改字典的key中                for second_class_city in multi_city[first_class_input][second_class_input].keys():  #如果用户输入的数据在字典的市名中,则打印区名称                    print(second_class_city)                    third_class_flag = True  #定义三级菜单的标志位,后续可以通过改变标志位的布尔值,来退出三级循环                while third_class_flag: #进入三级循环                    third_class_input = input("请输入区名3>>>: ")  #提示用户输入区名                    if third_class_input in multi_city[first_class_input][second_class_input].keys():  #判断用户输入的区名是否在改字典的key中                        third_class_zone = multi_city[first_class_input][second_class_input][third_class_input]  #如果用户输入的数据在字典的区名中,则打印学校名称                        print(third_class_zone)                    elif third_class_input == ec: #如果用户输入的是q,返回到二级菜单                        print('正在返回上一级菜单...... ')                        third_class_flag = False  #通过改变三级菜单的标志位,来退出三级循环                    elif third_class_input == ex:  #如果用户输入的是e,就退出整个程序                        sys.exit('退出中……ing')                    else:  #其他情况提示输入错误,请重新输入                        print("输入错误,请重新输入: ")            elif second_class_input == ec:   #如果用户输入的是q,返回到一级菜单                print('正在返回上一级菜单...... ')                second_class_flag = False  #通过改变三级菜单的标志位,来退出二级循环            elif second_class_input == ex:  #如果用户输入的是e,就退出整个程序                sys.exit('退出中……ing')            else:   #其他情况提示输入错误,请重新输入                print("输入错误,请重新输入: ")    elif first_class_input == ec:  #因为本级菜单是顶级菜单,如果用户输入的是q,可以使用continue,持续在一级循环(顶层菜单)        print('已经最顶级菜单,完全退出请输入 e ')        continue    elif first_class_input == ex:  #如果用户输入的是e,就退出整个程序        sys.exit('退出中……ing')    else:   #其他情况提示输入错误,请重新输入        print("输入错误,请重新输入: ")

有问题需要探讨的可以加QQ:646783224

转载于:https://www.cnblogs.com/xiaohuo2011/p/7201049.html

PYTHON作业----编写多级菜单相关推荐

  1. 老男孩Day1作业(二):编写多级菜单

    要求:编写多级菜单 1.三级菜单 2.可依次进入各子菜单 3.菜单能够回到上一级 4.用到知识点:字典.列表.多层循环.函数 1)编写思路 编写思路参考下面GitHub链接中的流程图 https:// ...

  2. python编写电子菜单_Python简单实现多级菜单

    1 #-*- coding: utf-8 -*- 2 #@Time : 2018-06-01 13:40 3 #@Author : 超人 4 #@Email : huxiaojiu111@gmail. ...

  3. day1 作业二:多级菜单操作

    作业二:多级菜单 (1)三级菜单 (2)可以次选择进入各子菜单 (3)所需新知识点:列表.字典 要求:输入b返回上一层,输入q退出整个程序 思路:三级菜单第一级别是省,第二级别是市,第三级别是县,用户 ...

  4. day1作业二:多级菜单操作

    作业二:多级菜单 (1)三级菜单 (2)可以次选择进入各子菜单 (3)所需新知识点:列表.字典 要求:输入back返回上一层,输入quit退出整个程序 思路: (1)首先定义好三级菜单字典: (2)提 ...

  5. python基础:多级菜单

    #类似于多级菜单中的经典列子---城市的多级菜单#个人更改了组成成分,效果大致不变,总体还是臃肿的,还在练习中,算是基本能实现效果了#---基本功能---#1.用户能根据选择进入菜单#2.用户能返回上 ...

  6. Python多级菜单

    作业2:多级菜单 三级菜单 可依次选择进入各子菜单 所需新知识点:列表.字典 1.流程图 2.登录界面,输入对应索引 #!/usr/bin/env python3 # -*- coding:utf-8 ...

  7. Python基础-小程序练习(跳出多层循环,购物车,多级菜单,用户登录)

    一. 从第3层循环直接跳出所有循环 break_flag = False count = 0 while break_flag == False:print("-第一层")whil ...

  8. 【shell 练习5】编写简单的多级菜单

    一.简单的多级菜单 [root@web129 ~]# cat menu.sh #!/bin/bash #shell菜单演示 function menu() { echo -e `date` cat & ...

  9. python多级菜单_多级菜单.py

    # user/bin/env python3 # -*- coding:utf-8 -*- QI = ['桃山区','新兴区','茄子河'] HA = ['道里区','南岗区','道外区'] DA = ...

最新文章

  1. 这是一个什么用也没有的模板
  2. 2021-01-07 Python Opencv转换颜色空间 RGB转为HSV
  3. Andrew Ng 深度学习笔记-01-week2-课程
  4. ORACLE同义词源库锁表导致目标库删除操作报ora 02055 02049 02063 06512
  5. 启动物联网智能校园,NFC技术可变出哪些创新应用?
  6. 怎么用java ee编程_Java EE应用程序入门 - 编程入门网
  7. node静态服务器优缺点_使用 Node.js 的优势和劣势都有哪些?
  8. mac vscode设置中文_VSCode编写latex
  9. 十个提升网站访问性能的方法
  10. STM32:Code、RO、RW、Zi含义
  11. PTA查验身份证 (15 分) 一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。
  12. 英语语法基础(适合入门者)--第一章:词、单词
  13. CAD怎么快速用计算机加面积,CAD如何利用“命令”快速计算图形面积
  14. JavaScript简史
  15. 计算机二级c语言模拟上机,计算机二级C语言上机模拟题
  16. 有什么好的OCR软件可以实现图片转文字
  17. Word题注带一级标题,由图一.1变为图1.1
  18. python是什么意思,Python怎么读
  19. SPM处理fMRI数据的基本步骤
  20. 【HTML响应式项目】成人教育官网前端页面(HTML+CSS+JS实现三端适应)

热门文章

  1. Remove Nth Node From End of List
  2. 关于JavaScript处理字符串的常见操作
  3. my batis的理解
  4. 记一次treegrid checkbox 选择问题
  5. [PY3]——内置数据结构(4)——字符串格式化(format)
  6. python中的enumerate函数
  7. 每个人都有一条属于自己的路,既然来了这个世间,就好好的修炼好就行了!无须担忧...
  8. NYOJ 311 完全背包
  9. [代码示例]用Fine Uploader+ASP.NET MVC实现ajax文件上传
  10. C#数据结构(一)----线性表