python闯关_Day05

一个简单的三级菜单

#! /usr/bin/env python
#-*- coding:utf-8 -*-

mymenu = {
    '动物' : {
        '猫' : ['黄猫','花猫'],
        '狗' : ['二哈','金毛']
    },
    '植物' : {
        '树' : ['大树','小树'],
        '草' : ['绿草','矮草']
    }
}
menu_list = list(mymenu.keys())             

while True:
    print(" 编号 ".center(50,'*'))
    for i in menu_list:
        print(menu_list.index(i)+1,i)       
    a_id = input("请输入菜单编号,或输入q(quit)退出:")  
    if a_id.isdigit():
        a_id = int(a_id)
        if a_id > 0 and a_id <= len(menu_list):
            a_name = menu_list[a_id-1]     
            b_list = list(mymenu[a_name].keys())   
            while True:
                print(" B级 ".center(50,'*'))
                for v in b_list:
                    print(b_list.index(v)+1,v)       
                b_id = input("请输入编号,或输入b(back)返回上级菜单,或输入q(quit)退出:")
                if b_id.isdigit():
                    b_id = int(b_id)
                    if b_id > 0 and b_id <= len(b_list):
                        city_name = b_list[b_id-1]    
                        town_list = mymenu[a_name][city_name]  
                        while True:
                            print(" C级 ".center(50,'*'))
                            for j in town_list:
                                print(town_list.index(j)+1,j)
                            back_or_quit = input("输入b(back)返回上级菜单,或输入q(quit)退出:")
                            if back_or_quit == 'b':
                                break                #终止此层while循环,跳转到上一层While。
                            elif back_or_quit == 'q':
                                exit()
                            else:
                                print("输入非法!")
                    else:
                        print("编号%d不存在。"%b_id)
                elif b_id == 'b':
                    break
                elif b_id == 'q':
                    # flag = True
                    # break
                    exit()
                else:
                    print("输入非法!")
                # if flag1:
                #     break
        else:
            print("编号%d不存在。"%a_id)
    elif a_id == 'q':
        break
    else:
        print("输入非法!")

  

 

posted on 2019-01-10 23:58  NetDevOps  阅读(157)  评论(0编辑  收藏  举报

导航