zoukankan      html  css  js  c++  java
  • Python 学习笔记【13】练习:三级菜单

      程序: 三级菜单

      要求:

        1、打印省、市、县三级菜单

        2、可返回上一级

        3、可随时退出程序

      定义字典

     1 data = {
     2     '北京': {
     3         '昌平': {
     4             '沙河': ['oldboy', 'test'],
     5             '天通苑': ['链家地产', '我爱我家']
     6         },
     7         '朝阳': {
     8             '望京': ['奔驰', '陌陌'],
     9             '国贸': ['CICC', 'HP'],
    10             '东直门': ['Advent', '飞信'],
    11         },
    12         '海淀': {}
    13     },
    14     '山东': {
    15         '德州': {},
    16         '青岛': {},
    17         '济南': {}
    18     },
    19     '广东': {
    20         '东莞': {},
    21         '常熟': {},
    22         '佛山': {}
    23     }
    24 }

      方法一:

     1 exit_flag = False
     2 
     3 while not exit_flag:  # 打印第1层
     4     for i in data:
     5         print('第1层', i)
     6 
     7     choice2 = input("选择进入第2层,按q退出:")  # 选择,然后进入对应的第2层
     8     if choice2 in data:
     9         while not exit_flag:
    10             for i2 in data[choice2]:
    11                 print('	第2层', i2)
    12 
    13             choice3 = input("选择进入第3层,按q退出:")  # 选择,然后进入对应的第3层
    14             if choice3 in data[choice2]:
    15                 while not exit_flag:
    16                     for i3 in data[choice2][choice3]:
    17                         print("		第3层", i3)
    18 
    19                     choice4 = input("选择进入第4层,按q退出:")  # 选择,然后进入对应的第4层
    20                     if choice4 in data[choice2][choice3]:
    21                         while not exit_flag:
    22                             for i4 in data[choice2][choice3][choice4]:
    23                                 print('			第4层', i4)
    24 
    25                             choice_end = input("无层,按b返回,按q退出:")  # 无层,选择b返回
    26                             if choice_end == 'b':  # 跳出第4层while循环,到第3层
    27                                 break
    28                             elif choice_end == 'q':
    29                                 exit_flag = True
    30 
    31                     if choice4 == 'b':  # 跳出第3层while循环,到第2层
    32                          break
    33                     elif choice4 == 'q':
    34                         exit_flag = True
    35 
    36             if choice3 == 'b':  # 跳出第2层while循环,到第1层
    37                  break
    38             elif choice3 == 'q':
    39                 exit_flag = True
    40 
    41     if choice2 == 'q':
    42         exit_flag = True

      方法二:(最后一层用pass回到第三层)

     1 exit_flag = False
     2 
     3 while not exit_flag:  # 打印第1层
     4     for i in data:
     5         print('第1层', i)
     6 
     7     choice2 = input("选择进入第2层,按q退出:")  # 选择,然后进入对应的第2层
     8     if choice2 in data:
     9         while not exit_flag:
    10             for i2 in data[choice2]:
    11                 print('	第2层', i2)
    12 
    13             choice3 = input("选择进入第3层,按q退出:")  # 选择,然后进入对应的第3层
    14             if choice3 in data[choice2]:
    15                 while not exit_flag:
    16                     for i3 in data[choice2][choice3]:
    17                         print("		第3层", i3)
    18 
    19                     choice4 = input("选择进入第4层,按q退出:")  # 选择,然后进入对应的第4层
    20                     if choice4 in data[choice2][choice3]:
    21                             for i4 in data[choice2][choice3][choice4]:
    22                                 print('			第4层', i4)
    23 
    24                             choice_end = input("无层,按b返回,按q退出:")  # 无层,选择b返回
    25                             if choice_end == 'b':  # 回到第3层
    26                                 pass
    27                             elif choice_end == 'q':
    28                                 exit_flag = True
    29 
    30                     if choice4 == 'b':  # 跳出第3层while循环,到第2层
    31                          break
    32                     elif choice4 == 'q':
    33                         exit_flag = True
    34 
    35             if choice3 == 'b':  # 跳出第2层while循环,到第1层
    36                  break
    37             elif choice3 == 'q':
    38                 exit_flag = True
    39 
    40     if choice2 == 'q':
    41         exit_flag = True

       方法三:

     1 def print_menu(ctx, lev=1):
     2     choice = 0
     3     while choice != "b":
     4         for i in ctx:
     5             print('	'*(lev-1) + i)
     6         if isinstance(ctx, dict):
     7             choice = input("选择进入%d>>:" % (lev+1))
     8             if choice in ctx:
     9                 print_menu(ctx[choice], lev+1)
    10         else:
    11             choice = input("最后一层,按b返回>>:")
    12 print_menu(data)
  • 相关阅读:
    TeamWork#3,Week5,Scrum Meeting 11.16
    TeamWork#3,Week5,Scrum Meeting 11.6, 11.7, 11.11, 11.12
    TeamWork#3,Week5,Scrum Meeting 11.15
    TeamWork#3,Week5,Scrum Meeting 11.14
    TeamWork#3,Week5,Scrum Meeting 11.13
    TeamWork#3,Week5,Scrum Meeting 11.9
    TeamWork#3,Week5,Bing Input Method vs Sogou Input Method
    TeamWork#3,Week5,Scrum Meeting 11.4
    Daily Scrum10 11.14
    Daily Scrum9 11.13
  • 原文地址:https://www.cnblogs.com/a1-code/p/6010784.html
Copyright © 2011-2022 走看看