#录入菜单
def createMenu():
    Menu = {}
    provinces = ["陕西","四川","江苏"]

shanXi_cities = ["西安","宝鸡"]
    siChuan_cities = ["成都","绵阳"]
    jiangSu_cities = ["南通","苏州"]
    
    xiAn_locals = ["高新区","郭杜镇"]
    baoJi_locals = ["鸡1区","鸡2区"]
    chengDu_locals = ["锦江区","武侯区"]
    mianyang_locals = ["羊1区","羊2区"]
    nanTong_locals = ["通1区","通2区"]
    suZhou_locals = ["苏1区","苏2区"]

for i,j in zip([[shanXi_cities,[xiAn_locals,baoJi_locals]],[siChuan_cities,[chengDu_locals,mianyang_locals]],[jiangSu_cities,[nanTong_locals,suZhou_locals]]],provinces):
        menu = {}
        for m,n in zip(i[0],i[1]):
            menu[m] = n
        Menu[j] = menu
    return Menu

#打印一级菜单
def printProvince(Menu):
    print("The provinces are listed as below\n----------------------")
    for i in Menu.items():
        print(i[0])
    print("----------------------")
#打印二级菜单
def printCities(Menu,province):
    print("The cities are listed as below\n----------------------")
    for i in Menu[province].items():
        print(i[0])
    print("----------------------")
    return province
#打印三级菜单
def printLocals(Menu,province,city):
    print("The district are listed as below\n----------------------")
    for i in Menu[province][city]:
        print(i)
    print("----------------------")

if __name__=='__main__':
    Menu = createMenu()
    printProvince(Menu)
    userInput = []    #用来判别处于哪一级菜单

while(len(userInput)>=0):
        #位于一级菜单
        if(len(userInput) == 0):
            province = input("Enter the province you wanted: ")
            #回退仍处于一级菜单
            if province == "b":
                printProvince(Menu)
            #退出
            elif province == "exit":
                break
            #进入二级菜单
            else:
                while True:
                    try:
                       printCities(Menu,province)
                       userInput.append(province)
                       break
                    except Exception as e:
                       province = input("省名输入错误,请重新输入:")
                            
        #位于二级菜单
        elif (len(userInput) == 1):
            city = input("Enter the city you wanted: ")
            #回退到一级菜单
            if city == "b":
                userInput.pop()
                printProvince(Menu)
            #退出
            elif city == "exit":
                break
            #进入三级菜单
            else:
                while True:
                    try:
                        printLocals(Menu,province,city)
                        userInput.append(city)
                        break
                    except Exception as e:
                        city = input("城市名输入错误,请重新输入:")
        #位于三级菜单
        elif (len(userInput) == 2):
            choose = input("enter b to renturn to the previous menu: ")
            #回退到二级菜单
            if choose == "b":
                userInput.pop()
                printCities(Menu,userInput[0])

   #退出
            else:
                break

python实现三级菜单间的前后跳转的更多相关文章

  1. python打怪之路【第三篇】:利用Python实现三级菜单

    程序: 利用Python实现三级菜单 要求: 打印省.市.县三级菜单 可返回上一级 可随时退出程序 coding: menu = { '北京':{ '朝阳':{ '国贸':{ 'CICC':{}, ' ...

  2. python之三级菜单

    python之三级菜单 要求: 1. 运行程序输出第一级菜单 2. 选择一级菜单某项,输出二级菜单,同理输出三级菜单 3. 菜单数据保存在文件中 4. 让用户选择是否要退出 5. 有返回上一级菜单的功 ...

  3. 【python】——三级菜单

    作业需求: 打印三级菜单 可返回上一级 可随时退出程序 #!/usr/bin/env python # -*- coding:utf-8 -*- #Author: __Json.Zzgx__ menu ...

  4. Python学习-------------------三级菜单简单版

    题目: 多级菜单         1.三级菜单         2.可依次选择进入的各子菜单         3.所需新知识点:列表.字典 ReadMe: 这个做循环,比较绕脑子 点开运行即可 Min ...

  5. python作业三级菜单day1(第一周)

    一.作业需求: 1. 运行程序输出第一级菜单 2. 选择一级菜单某项,输出二级菜单,同理输出三级菜单 3. 菜单数据保存在文件中 4. 让用户选择是否要退出 5. 有返回上一级菜单的功能 二三级菜单文 ...

  6. python实现三级菜单源代码

    8月4号早晨天气晴,继续学习‘Alex’的python视频,写了用字典实现三级菜单的代码,都是循环和判断比较lower,废话不多说直接贴码: #!/user/bin/env python #-*-co ...

  7. python 实现三级菜单

    要求: 可选择进入各级子菜单 在各级菜单下可以选择退出 在子菜单下可以返回上一级菜单 Readme: 运行程序,输入菜单选项,进入对应的子菜单 # Joe Young data = { '山东':{ ...

  8. Python入门-三级菜单

    作业题目: 三级菜单 作业需求: menu = { '北京':{ '海淀':{ '五道口':{ 'soho':{}, '网易':{}, 'google':{} }, '中关村':{ '爱奇艺':{}, ...

  9. python 打印三级菜单

    要求: 1.用户选择城市菜单编号显示对应的下级菜单 2.可以返回上级菜单,只有在用户确定正常退出时才退出 #!/usr/bin/env python3 # -*- coding: utf-8 -*- ...

随机推荐

  1. 【杂】暴力出奇迹,lz水数据

    做了个填涂颜色的题qwq 洛谷上的qwq,然后我就把这道题水过去了qwq(显然这是不对的,我们不能水数据qwq)当然我本身是80分的qwq end-

  2. My Team——面向对象与软件工程实验三

    My Team 一.Name GDTX(团队成员姓氏的拼音首字母组成) 二.项目描述 微信小程序(小洁便签): 1,功能齐全:小洁便签具有大多数便签APP所具有的添加.查看.修改和删除便签内容以及插入 ...

  3. Jan.07

    Jan.07 英文朗读 be good for对...好 be bad for/be harmful to对..不利. Smoking is not good for your health. 吸烟对 ...

  4. 一个springboot注解不成功的小问题

    报错: Consider defining a bean of type ''xxx" in your configuration. 最后发现是POM.xml里面 关于mybatis的包 & ...

  5. ZedBoard前期准备工作

    1. 资源下载 内核:https://github.com/Xilinx/linux-xlnx/releases uboot:https://github.com/Xilinx/u-boot-xlnx ...

  6. Python3 NameError: name 'open' is not defined处理办法

    一.说明 之前默认以为python的open方法用存哪里都没什么区别的,然后昨天直接在"__del__()"中使用今天同事跑程序时反馈程序报错“Python3 NameError: ...

  7. 学号20175212 《Java程序设计》第7周学习总结

    学号20175212 <Java程序设计>第7周学习总结 教材学习内容总结 8.1.String类 可以使用String类声明对象并创建对象,例如: String s = new Stri ...

  8. python数据结构与算法之算法和算法分析

    1.问题.问题实例.算法的概念区分. 一个例子说明一下: 问题:判断一个正整数N是否为素数   #问题是需要解决的一个需求 问题实例:判断1314是否为素数? #问题实例是该问题的一个具体例子 算法: ...

  9. Java基本类型内存字节数

    基本类型 字节数 位(bit) 取值范围 byte 1 1*8 -128~127 short 2 2*8   int 4 4*8   long 8 8*8   float 4 4*8   double ...

  10. Delphi中的日期加减

    var Date: TDateTime;  FormatSettings: TFormatSettings; begin Date := Now;//获取当天时间 ShowMessage(DateTo ...