利用所学的知识写一个多级菜单
- 要求:
- 打印省、市、县三级菜单
- 可返回上一级
- 可随时退出程序
- 代码演示
1 # 定义一个包含(省,市,县)3级嵌套字典 2 region = { 3 "陕西":{ 4 "西安":{ 5 "大雁塔":[ 6 "音乐喷泉"], 7 "小雁塔": [ 8 "小吃街" 9 ] 10 }, 11 "咸阳":{ 12 "长武":[ 13 "苹果" 14 ], 15 "永寿":[ 16 "法门寺" 17 ] 18 } 19 }, 20 "上海":{ 21 "浦东":{ 22 "野生动物园":[ 23 "狮子" 24 ] 25 }, 26 "徐汇":{ 27 "外滩":[ 28 "东方明珠" 29 ] 30 }, 31 "宝山":{ 32 "九亭":[ 33 "欢乐谷" 34 ] 35 } 36 }, 37 "北京":{ 38 "朝阳":{ 39 "双桥路":[ 40 "和美国际大酒店" 41 ] 42 }, 43 "西城":{ 44 "天安门":[ 45 "故宫" 46 ] 47 }, 48 } 49 } 50 51 # print(region["上海"]["浦东"]["野生动物园"]) 52 53 # 定义一个变量,值为False 54 exit_false = False 55 56 # 使用while循环,while not exit_false: 等于 while True; 57 while not exit_false: 58 # 循环打印字典的第一级(也就是取出字典第一层的key值) 59 for x in region: 60 print(x) # >>> 陕西,上海,北京 61 # 输入字符 62 input_1 = input("请选择省:") 63 # 判断是否存在输入的字符 64 if input_1 in region: 65 while not exit_false: 66 # 在的话打印第一层 67 for x1 in region[input_1]: 68 print("\t", x1) 69 # 输入字符 70 input_2 = input("请选择市: ") 71 # 判断是否存在输入的字符 72 if input_2 in region[input_1]: 73 while not exit_false: 74 # 如果在,打印第二层 75 for x2 in region[input_1][input_2]: 76 print("\t\t", x2) 77 # 输入字符 78 input_3 = input("请选择区:") 79 # 判断是否存在输入的字符 80 if input_3 in region[input_1][input_2]: 81 while not exit_false: 82 # 如果在,打印第三层 83 for x3 in region[input_1][input_2][input_3]: 84 print("\t\t\t", x3) 85 input_4 = input("已到最后一级,输入b返回上一层,输入q退出!") 86 # 按b返回上一层 87 if input_4 == "b": 88 break 89 # 按q退出 90 elif input_4 == "q": 91 exit_false = True 92 if input_3 == "b": 93 break 94 elif input_3 == "q": 95 exit_false = True 96 if input_2 == "b": 97 break 98 elif input_2 == "q": 99 exit_false = True 100 if input_1 == "b": 101 print("已到第一层,不能再到上一步!") 102 elif input_1 == "q": 103 exit_false = True
- 代码运行
1 F:\python3>python test.py 2 陕西 3 上海 4 北京 5 请选择城市:陕西 6 西安 7 咸阳 8 请选择地区: 咸阳 9 长武 10 永寿 11 请选择县城:长武 12 苹果 13 已到最后一级,输入b返回上一层,输入q退出! 14 长武 15 永寿 16 请选择县城:b 17 西安 18 咸阳 19 请选择地区: b 20 陕西 21 上海 22 北京 23 请选择城市:b 24 已到第一层,不能再到上一步! 25 陕西 26 上海 27 北京 28 请选择城市:q