Use recursion and stack to achieve three-level menu

the MENU = {
     ' Beijing ' : {
         ' Haidian ' : {
             ' Wudaokou ' : {
                 ' SOHO ' : {},
                 ' NetEase ' : {},
                 ' Google ' : {} 
            }, 
            ' Zhongguancun ' : {
                 ' iQIYI ' : {},
                 ' car home ' : {},
                 ' the youku ' : {} 
            },
            'On the ground ' : {
                 ' Baidu ' : {} 
            } 
        }, 
        ' Changping ' : {
             ' River ' : {
                 ' Old Boy ' : {},
                 ' Northern ' : {} 
            }, 
            ' Tiantongyuan ' : {},
             ' Huilongguan ' : {} 
        }, 
        ' sun ' : {},
         ' East ' : {} 
    }, 
    'Shanghai ': {
         " Minhang " : {
             " People's Square " : {
                 ' Fried Chicken ' : {} 
            } 
        }, 
        ' Zhabei ' : {
             ' Train war ' : {
                 ' Ctrip ' : {} 
            } 
        }, 
        ' Pudong ' : {} , 
    }, 
    ' Shandong ' : {} 
} 

# DEF show_menu (MENU): 
#      the while True: 
#          for K in MENU:
#             print(k)
#         inp = input(">>>>").strip()
#         if inp.upper() == 'B':
#             break
#         elif menu.get(inp):
#             con = menu[inp]
#             show_menu(con)
#
# show_menu(menu)

while 1:
    lis = [menu]
    for k in lis[-1]:
        print(k)
    inp = input('>>>>')
    # print(menu[inp])

    lis.append(lis[-1][inp])

 

Guess you like

Origin www.cnblogs.com/shi-py-rengongzhineng/p/11574547.html