zoukankan      html  css  js  c++  java
  • 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('你的输入有误')   
    

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

  • 相关阅读:
    Codeforces Round #276 (Div. 1) E. Sign on Fence 二分+主席树
    Codeforces Round #229 (Div. 2) C. Inna and Candy Boxes 树状数组s
    HDU 5918 Sequence I KMP
    HDU 5919 Sequence II 主席树
    hdu 5833 Zhu and 772002 高斯消元
    Codeforces Round #143 (Div. 2) E. Cactus 无向图缩环+LCA
    codeforces 45C C. Dancing Lessons STL
    deeplab hole algorithm
    有时候只是担心多余
    lstm
  • 原文地址:https://www.cnblogs.com/Ian-learning/p/7788634.html
Copyright © 2011-2022 走看看