2_python之路之多级菜单

python之路之多级菜单

 

1.使用知识点

  (1)列表,字典的使用

  (2)if条件判断语句

  (3)for/while循环的使用

2.代码详细

 

#!/usr/bin/env python
# _*_ coding: utf-8 _*_
# author:chenjianwen
# email:1071179133@qq.com
# update_time:2017-10-16 13:03
# blog_address:www.cnblogs.com/chenjw-note
list_data = {
    '广东':{
        '广州市':['天河','越秀','白云'],
        '深圳市':['福田','南山','龙华'],
        '东莞市':['长安','虎门','大朗'],
        '茂名市':['信宜','高州','前排']
    },
    '广西':{
        '南宁市':['青秀区','兴宁区','江南区'],
        '桂林市':['象山区','七星区','临桂区'],
        '梧州市':['长洲区','龙圩区','万秀区'],
        '百色市':['右江区','靖西市','田阳县']
    },
    '湖北':{
        '武汉市':['江岸区','江汉区','硚口区'],
        '黄石市':['黄石港区','西塞山区','下陆区'],
        '十堰市':['茅箭区','张湾区','郧阳区'],
        '宜昌市':['枝江县','远安县','兴山县']
    }
}
first_level_data = []
for one in list_data:
    first_level_data.append(one)
#print(first_level_data)
import sys
def main(data):
    while True:
        print("本级菜单如下,请选择:")
        for one in data:
            print(one)
        select1 = input("请选择【q退出,b上一级】:").strip()
        if select1.startswith('q'):             ##输入q则退出
            sys.exit(0)
        elif select1.startswith('b'):           ##输入b则判断,当一级菜单的内容存在data中时,则说明目前是第一级,跳出循环继续下一次循环,否则返回上一级
            if first_level_data[0] in data:
                continue
            else:
                return
        if type(data) == dict:              ##通过判断data是否为字典格式来确定执行内容
            next_level = data.get(select1)
            if next_level:
                main(next_level)
            else:
                print("输入有误,请重新输入:")
        else:
            print("没有下一级了....,请重新选择...")


main(list_data)

 

3.执行结果

 

posted @ 2017-10-15 20:33  chenjianwen  阅读(344)  评论(0编辑  收藏  举报