练习二_ 三级菜单打印

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])

转载于:https://www.cnblogs.com/allenchen168/p/11516863.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值