instance3:multilayer menu

#! /usr/bin/env python
# -*- coding: utf-8 -*-
# __author__ = "Deakin"
# Email: 469792427@qq.com
# Date: 2018/1/12

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

menu = {
    '北京':{
        '海淀':{
            '五道口':{
                'soho':{},
                '网易':{},
                'google':{}
            },
            '中关村':{
                '爱奇艺':{},
                '汽车之家':{},
                'youku':{},
            },
            '上地':{
                '百度':{},
            },
        },
        '昌平':{
            '沙河':{
                '老男孩':{},
                '北航':{},
            },
            '天通苑':{},
            '回龙观':{},
        },
        '朝阳':{},
        '东城':{},
    },
    '上海':{
        '闵行':{
            "人民广场":{
                '炸鸡店':{}
            }
        },
        '闸北':{
            '火车战':{
                '携程':{}
            }
        },
        '浦东':{},
    },
    '山东':{},
}
quit=False
while not quit:
    for i in menu:
        print(i)
    choice = input("选择城市,按'r'返回上一层,按'q退出:")
    if choice in menu:
        while not quit:
            for i2 in menu[choice]:
                print('\t',i2)
            choice2=input("选择城区,按'r'返回上一层,按'q退出:")
            if choice2 in menu[choice]:
                while not quit:
                    for i3 in menu[choice][choice2]:
                        print('\t\t',i3)
                    choice3=input("选择街道,按'r'返回上一层,按'q退出")
                    if choice3 in menu[choice][choice2]:
                        for i4 in menu[choice][choice2][choice3]:
                            print('\t\t\t',i4)
                        choice4=input("下属公司,按'r'返回上一层,按'q退出")
                        if choice4=="r":
                            pass
                        elif choice4=="q":
                            quit=True
                        else:
                            print("最后一层,按'r'返回上一层,按'q退出")
                    elif choice3=="r":
                        break
                    elif choice3 == "q":
                        quit = True
                    else:
                        print("请输入列表中的街道名称")
            elif choice2=="r":
                break
            elif choice2 == "q":
                quit = True
            else:
                print("请输入列表中的城区名称")
    elif choice == "q":
        quit = True
    else:
        print("请输入列表中的城市名称")

PS:对于多级菜单,在下层想直接退出,好像只能while not False,或者quit=True,while quit,print q的时候quit=False,暂时没想到其他办法。

posted @ 2018-01-12 13:06  Deakin-DJ  阅读(133)  评论(0编辑  收藏  举报