您现在的位置:首页 >> 前端 >> 内容

PYTHON 字典方式的多级菜单显示

时间:2015/11/4 10:08:58 点击:

  核心提示:用python的字典和for循环方式写的一个多级菜单显示下面是简要的图形思路:下面是代码实现方式:#!/usr/bin/env python# -*- coding: utf-8 -*-#__auth...
用python的字典和for循环方式写的一个多级菜单显示

下面是简要的图形思路:

 PYTHON 字典方式的多级菜单显示

下面是代码实现方式:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
#__author__ = 'weibinf'
dict = {
    "黑龙江":{
        "哈尔滨":{
            "方正县":['天门乡','宝兴乡'],
            "宾县":['永和乡','民和乡'],
            "木兰县":["吉兴乡","建国乡"],
            },
        "大庆":{
            "肇州县":["福兴乡","浩德蒙古族乡"],
            "林甸县":['三合乡','黎明乡']
        },
    },
    "山西":{
        "太原":{
            "清徐县":['西谷乡',"集义乡"],
            "阳曲县":['凌井店乡','西凌井乡']
        },
        "朔州":{
            "应县":["南泉乡","下马峪乡"],
            "怀仁县":['亲和乡','新家园乡']
        },
    },
}
exit_flag = False
num = 0
while not exit_flag:
    for index,key in enumerate(dict.keys()):
        num +=1
        print "\033[32m-->\033[0m",index,key
    a_1 = num
    num = 0
    choice_1 = raw_input("\033[34mPlease your num: \033[0m").strip()
    if not choice_1.isdigit():
        if choice_1 == 'quit':
            exit_flag = True
            print "\033[31m<------>  going to quit  <----->\033[0m"
        else:
            print "\033[31m请输入正确的数字、、、\033[0m"
    else:
        choice_1 = int(choice_1)
        if choice_1 >= a_1:
            print "\033[31m对不起,请输入正确的对应数字、、、\033[0m"
        elif choice_1 < a_1:
            key_1 = dict.keys()[choice_1]
            num = 0
            while not exit_flag:
                for index,key in enumerate(dict[key_1]):
                    num +=1
                    print "\033[32m---->\033[0m",index,key
                a_2 = num
                num = 0
                choice_2 = raw_input("\033[34mPlease your num1: \033[0m").strip()
                if not choice_2.isdigit():
                    if choice_2 == 'back':
                        break
                    elif choice_2 == 'quit':
                        exit_flag = True
                        print "\033[31m<------>  going to quit  <----->\033[0m"
                        break
                else:
                    choice_2 = int(choice_2)
                    if choice_2 >= a_2:
                        print "\033[31m对不起,请输入正确的对应数字、、、\033[0m"
                    elif choice_2 < a_2:
                        key_2 = dict[key_1].keys()[choice_2]
                        while not exit_flag:
                            for index,key in enumerate(dict[key_1][key_2]):
                                num += 1
                                print "\033[32m------>\033[0m",index,key
                            a_3 = num
                            num = 0
                            choice_3 = raw_input("\033[34mPlease your num2: \033[0m").strip()
                            if not choice_3.isdigit():
                                if choice_3 == 'quit':
                                    exit_flag = True
                                    print "\033[31m<------>  going to quit  <----->\033[0m"
                                    break
                                if choice_3 == 'back':
                                    break
                            else:
                                choice_3 = int(choice_3)
                                if choice_3 >= a_3:
                                    print "\033[31m对不起,请输入正确的对应数字、、、\033[0m"
                                elif choice_3 < a_3:
                                    key_3 = dict[key_1][key_2].keys()[choice_3]
                                    while not exit_flag:
                                        for index,key in enumerate(dict[key_1][key_2][key_3]):
                                            print "\033[32m-------->\033[0m",index,key
                                        choice_4 = raw_input("\033[34mPlease your num3: \033[0m").strip()
                                        if choice_4.isdigit():
                                            print "\033[31m<<  已经是最后一层了、、、  >>\033[0m"
                                        elif choice_4 == 'quit':
                                            exit_flag = True
                                        elif choice_4 == 'back':
                                            break
                                    else:
                                        print "\033[31m<------>  going to quit  <----->\033[0m"
  

 


Tags:PY YT TH HO 
作者:网络 来源:不详