字典应用: 三级菜单
方法一:
- # -*-coding:utf-8 -*-
- __date__ = 2018/2/5 14:54
- __author__ = xiaojiaxin
__file_name__ = 三级菜单
- # 可返回上一级
- # 可随时退出程序
- base1={
- 1:{
- 10:{11:{"十一"},
- 12:{"十二"},
- 13:{"十三"}
- },
- 100:{
- 101:{"一百零一"},
- 102:{"一百零二"},
- 103:{"一百零三"}
- },
- 1000:{
- 1001:{"一千零一"},
- 1002:{"一千零二"},
- 1003:{"一千零三"}
- }
- },
- 2:{
- 20:{
- 21:{"二十一"},
- 22:{"二十二"},
- 23:{"二十三"}
- },
- 200:{
- 201:{"二百零一"},
- 202:{"二百零二"},
- 203:{"二百零三"}
- },
- 2000:{
- 2001:{"二千零一"},
- 2002:{"二千零二"},
- 2003:{"二千零三"}
- }
- },
- 3:{
- 30:{
- 31:{"三十一"},
- 32:{"三十二"},
- 33:{"三十三"}
- },
- 300:{
- 301:{"三百零一"},
- 302:{"三百零二"},
- 303:{"三百零三"}
- },
- 3000:{
- 3001:{"三千零一"},
- 3002:{"三千零二"},
- 3003:{"三千零三"}
- }
- }
- }
- for i in base1:
- print(i)
- choice1=0
- choice2=0
- choice3=0
- while True:
- conti_jud=input("continue or not?[y/n]")
- if conti_jud==y:
- choice1=int(input("choose num1:"))
- if choice1 in base1:
- #print("ok")
- for j in base1[choice1]:
- print(j)
- while True:
- conti_jud=input("continue or not?[y/n/back]")
- if conti_jud==y:
- choice2=int(input("choose num2:"))
- if choice2 in base1[choice1]:
- for k in base1[choice1][choice2]:
- print(k)
- while True:
- conti_jud=input("continue or not?[y/n/back]")
- if conti_jud==y:
- choice3=int(input("choose num3:"))
- if choice3 in base1[choice1][choice2]:
- for l in base1[choice1][choice2][choice3]:
- print(l)
- exit() #程序结束
- else:
- print("The num isnt exist!")
- else:
- break
- else:
- print("The num isnt exist!")
- else:
- break
- else:
- print("The num isnt exist!")
- else:
- break
方法二:
- # -*-coding:utf-8 -*-
- __date__ = 2018/2/7 16:07
- __author__ = xiaojiaxin
__file_name__ = 三级菜单优化版本
- base1={
- 1:{
- 10:{
- 11:{"十一"},
- 12:{"十二"},
- 13:{"十三"}
- },
- 100:{
- 101:{"一百零一"},
- 102:{"一百零二"},
- 103:{"一百零三"}
- },
- 1000:{
- 1001:{"一千零一"},
- 1002:{"一千零二"},
- 1003:{"一千零三"}
- }
- },
- 2:{
- 20:{
- 21:{"二十一"},
- 22:{"二十二"},
- 23:{"二十三"}
- },
- 200:{
- 201:{"二百零一"},
- 202:{"二百零二"},
- 203:{"二百零三"}
- },
- 2000:{
- 2001:{"二千零一"},
- 2002:{"二千零二"},
- 2003:{"二千零三"}
- }
- },
- 3:{
- 30:{
- 31:{"三十一"},
- 32:{"三十二"},
- 33:{"三十三"}
- },
- 300:{
- 301:{"三百零一"},
- 302:{"三百零二"},
- 303:{"三百零三"}
- },
- 3000:{
- 3001:{"三千零一"},
- 3002:{"三千零二"},
- 3003:{"三千零三"}
- }
- }
- }
- current_layer=base1
- front_layer=base1
- count_lay=1
- while True:
- print("num menu:")
- for i in current_layer:
- print(i)
- state=input("continue:[y],back:[b],quit:[n] :")
- if state==y:
- ch=int(input("choose num:"))
- if ch not in current_layer:
- print("the num is not existed")
- continue
- else:
- front_layer=current_layer
- current_layer=current_layer[ch]
- count_lay+=1
- if count_lay==4:
- exit()
- elif state==b:
- current_layer=front_layer
- count_lay-=1
- continue
- elif state==n:
- exit()
- else:
- continue
来源: http://www.bubuko.com/infodetail-2491178.html