python多级菜单_PYTHON 字典方式的多级菜单显示

用python的字典和for循环方式写的一个多级菜单显示

下面是简要的图形思路:

wKiom1Y4IQWRHGSRAAL9Gajo8NE075.jpg

下面是代码实现方式:

#!/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"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值