Python程序3——三级菜单程序

程序: 三级菜单

要求: 

  1. 打印省、市、县三级菜单
  2. 可返回上一级
  3. 可随时退出程序
  1 menu = {
  2     '北京':{
  3         '海淀':{
  4             '五道口':{
  5                 'soho':{},
  6                 '网易':{},
  7                 'google':{}
  8             },
  9             '中关村':{
 10                 '爱奇艺':{},
 11                 '汽车之家':{},
 12                 'youku':{},
 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 exit_flag = True   # 设置跳出整个循环的指针
 46 
 47 while exit_flag:             #如果要一直在这个菜单里面,要直接用死循环;
 48     #如果里面有几个循环,那么现有的知识中,只能设置一个外面的变量来设置退出条件
 49     for i in menu:   #显示当前这一层的内容
 50         print(i)
 51 
 52     choice1 = input('请输入省份,退出请输入q')
 53 
 54     if choice1 in menu:
 55         #这个是省份一层
 56         while exit_flag:
 57             for i2 in menu[choice1]:
 58                 print(i2)
 59             choice2 = input('请输入区,b为上一层,q为退出')
 60             if choice2 in menu[choice1]:
 61                 #这个是区一层
 62                 while exit_flag:
 63                     for i3 in menu[choice1][choice2]:
 64                         print(i3)
 65                     choice3 = input('请输入地点,b为上一层,q为退出')
 66                     if choice3 in menu[choice1][choice2]:
 67                         #这个是最底层
 68                         while exit_flag:
 69                             if i3 in menu[choice1][choice2][choice3]:
 70                                 print(i3)
 71                             print("这个是最后一层")
 72                             choice4 = input('选择b,或者q')
 73                             if choice4 == "b":
 74                                 break
 75                             elif choice4 == "q":
 76                                 exit_flag =False
 77                                 break         #这里一定要记得break,这样exit_flag才能生效的,跳出整个循环
 78                             else:
 79                                 print('你的输入有误')
 80                                 break               #这里一定要记得退出
 81                     elif choice3 == "b":
 82                         break
 83                     elif choice3 == "q":
 84                         exit_flag = False
 85                         break  # 这里一定要记得break,这样exit_flag才能生效的,跳出整个循环
 86                     else:
 87                         print('你的输入有误')
 88                         break  # 这里一定要记得退出
 89             elif choice2 == "b":            #elif可以多个一起用的,这样就可以避免多层嵌套if。
 90                 break
 91             elif choice2 == "q":
 92                 exit_flag = False
 93                 break  # 这里一定要记得break,这样exit_flag才能生效的,跳出整个循环
 94             else:
 95                 print('你的输入有误')
 96                 break  # 这里一定要记得退出
 99     elif choice1 == "q":
100         exit_flag = False
101         break  # 这里一定要记得break,这样exit_flag才能生效的,跳出整个循环
102     else:
103         print('你的输入有误')   

重复的代码比较多。但是目前学的好像只能这么用。注意最后几行代码,由于是第一层,不能退出,所以不一样。

原文地址:https://www.cnblogs.com/Ian-learning/p/7788634.html