写程序:多级菜单

需求:

①现有省、市、县3级结构,要求程序启动后,允许用户可依次选择进入各子菜单

②可在任意一级菜单返回一级

③可以在任意一级菜单退出程序

所需知识点:列表、字典


#!/usr/bin/env python

# -*- coding:utf-8 -*-

# Author:young

menu_list = {

    '四川省':{

       '成都市':{'锦江区':['锦江幼儿园','锦江万达','春熙路'],

                '成华区':['成华幼儿园','成华万达','烂尾楼']

              }

    },

    '贵州省':{

        '贵阳市':{'云岩区':['云岩幼儿园','云岩玉溪场','云岩鸭子'],

                '南明区':['南明幼儿园','南明酒厂','南明广电'],

                '乌当区':['乌当幼儿园','乌当烟厂','乌当电信'],

        }

    }

}

now_choice=menu_list

history=[]

while True:

    for i in now_choice:

        print(i)

    choose=input("Please choose a part:")

    if not choose:continue             #如果没有输入,就继续让用户输入

    if choose in now_choice:

        history.append(now_choice) #这是存历史选择的列表,注意里存的是字典,可以理解为路径

        print(history)

        now_choice=now_choice[choose]  #递归,不断更新变量

    elif choose == 'q':

        if len(history) != 0:

            # print(history)

            now_choice=history.pop()

            print(now_choice)

            # print(type(now_choice))

        else:

            print("This is the top!")

    elif choose == 'e':

        exit()

    else:

        print("erro!")