python基础--三级菜单选择之简单实现

1、打印省、市、县三级菜单
2、可返回上一级
3、可随时退出程序

交互亲切版

menu = {'北京': {'海淀': {'五道口': {'soho': {},'网易': {},'google': {}},
'中关村': {'爱奇艺': {},'汽车之家': {},'youku': {},},
'上地': {'百度': {},},
},
'昌平': {'沙河': {'老男孩': {},'北航': {},},'天通苑': {},'回龙观': {},},
'朝阳': {},
'东城': {},
},
'上海': {'闵行': {"人民广场": {'炸鸡店': {}}},
'闸北': {'火车战': {'携程': {}}},
'浦东': {},
},
'山东': {},
}

tag = True
while tag:
menu1 = menu
for key in menu1: # 打印省级
print(key)

print('返回上一级请按b,退出系统请按q')
choice1 = input('请输入您想查看的省份>>:').strip()  # 查看省份

if choice1 == 'b':  # 输入b,则返回上一级
    break
if choice1 == 'q':  # 输入q,则退出整体
    tag = False
    print('已退出')
    continue
if choice1 not in menu1 :  # 输入内容不在mune1内,则继续输入
    print('您输入的名字不在系统内,请在以下名单中选择并重新输入')
    continue

while tag :
    menu2 = menu1[choice1]  # 拿到choice1对应的一层字典
    for key in menu2:
        print(key)

    print('返回上一级请按b,退出系统请按q')
    choice2 = input('请输入您想查看的地区>>:').strip()

    if choice2 == 'b':
        break
    if choice2 == 'q':
        tag = False
        print('已退出')
        continue
    if choice2 not in menu2 :
        print('您输入的名字不在系统内,请在以下名单中选择并重新输入')
        continue

    while tag:
        menu3 = menu2[choice2]
        for key in menu3:
            print(key)

        print('返回上一级请按b,退出系统请按q')
        choice3 = input('请输入您想查看的商圈>>:').strip()
        if choice3 == 'b':
            break
        if choice3 == 'q':
            tag = False
            print('已退出')
            continue
        if choice3 not in menu3 :
            print('您输入的名字不在系统内,请在以下名单中选择并重新输入')
            continue

        while tag:
            menu4 = menu3[choice3]
            for key in menu4:
                print(key)

            print('返回上一级请按b,退出系统请按q')
            choice4 = input('>>>:').strip()
            if choice4 == 'b':
                break
            if choice4 == 'q':
                tag = False
                print('已退出')
                continue
            if choice4 not in menu4:
                print('您到底想干嘛')
                continue

直男算法版

menu = {'北京': {'海淀': {'五道口': {'soho': {},'网易': {},'google': {}},
'中关村': {'爱奇艺': {},'汽车之家': {},'youku': {},},
'上地': {'百度': {},},
},
'昌平': {'沙河': {'老男孩': {},'北航': {},},'天通苑': {},'回龙观': {},},
'朝阳': {},
'东城': {},
},
'上海': {'闵行': {"人民广场": {'炸鸡店': {}}},
'闸北': {'火车战': {'携程': {}}},
'浦东': {},
},
'山东': {},
}
layers = [menu,]

while True:

current_layer = layers[-1]
for key in current_layer:
    print(key)

choice = input('>>: ').strip()

if choice == 'b':
    layers.pop(-1)
    continue
if choice == 'q':
    break

if choice not in current_layer:
    continue
layers.append(current_layer[choice])
posted @ 2019-09-13 14:55  AllenCH  阅读(436)  评论(0编辑  收藏  举报