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