三级菜单(菜鸟版)

需求:

  1. 三级菜单
  2. 可依次选择进入各子菜单

Readme:

  1.菜单选择顺序:省份(一级)-->下属市(二级)-->下属县(三级)

  2.在各级菜单都可直接退出程序,在市县级可以按b返回一级菜单

  3.完全是自己独立完成的,实现方法和网上不一样,感觉自己的方法比较笨

流程图:

   

代码:

#-*- coding:utf-8 -*-
#Author:Sam

list = {'廣東省':
            {'揭陽市':
                 ['揭東縣', '惠來縣'],
             '清遠市':
                 ['陽山縣', '連山縣']},
        '湖南省':
            {'株洲市':
                 ['攸縣', '茶陵縣'],
             '長沙市':
                 ['長沙縣', '瀏陽市']}
        }
province = []       #省份列表
city = []           #市列表
county = []         #县列表

while True:
    for index,i in enumerate(list.keys()):
        print(index,i)      #将下标和省份一起列出,方便后面用数字选择菜单
        province.append(i)  #加入省份列表

    user_choice_province = input("請選擇省份,按b返回,按q退出>>>:")
    if user_choice_province.isdigit():          #判断输入是否为数字
        user_choice_province = int(user_choice_province)    #将输入转换为整数
        if user_choice_province >= 0 and user_choice_province < len(list):      #判断选择是否正确
            choice_province = province[user_choice_province]    #选择的省份生成一个变量
            city_list = list.get(choice_province)           #利用字典属性获取对应省份下属市,并生成新字典

            for index, i in enumerate(city_list):       #利用上面的新字典,将下标和下属市列出供选择
                print(index, i)
                city.append(i)      #生成市列表,方便下面操作
            user_choice_city = input("請選擇市,按b返回,按q退出>>>>:")
            if user_choice_city.isdigit():
                user_choice_city = int(user_choice_city)
                if user_choice_city >=0 and user_choice_city < len(city):
                    choice_city = city[user_choice_city]
                    county_list = city_list.get(choice_city)

                    for index,i in enumerate(county_list):
                        print(index,i)
                    user_choice_county = input("請選擇縣,按b返回,按q退出>>>>:")
                    if user_choice_county.isdigit():
                        user_choice_county = int(user_choice_county)
                        if user_choice_county >=0 and user_choice_county <len(county_list):
                            print(county_list[user_choice_county])

                        elif user_choice_county == 'b':
                            break
                        elif user_choice_county == 'q':
                            exit("退出")
                        else:
                            print("输入错误")
                elif user_choice_city == 'b':
                    break
                elif user_choice_city == 'q':
                    exit("退出")
                else:
                    print("输入错误")
        elif user_choice_province == 'b':
            break
        elif user_choice_province == 'q':
            exit("退出")
        else:
            print("输入错误")
    else:
        exit("退出")

  

猜你喜欢

转载自www.cnblogs.com/pynetwork/p/8922714.html