• 三级菜单1


     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 # 显示【北京、上海、山东】,用户输入选择
    46 # 若输入【北京】,则显示【海淀、昌平、朝阳、东城】,用户可退出、返回上一层,也可输入选择
    47 # 若输入【海淀】,则显示【五道口、中关村、上地】,用户可退出、返回上一层,也可输入选择
    48 # 若输入【五道口】,则显示【Sohu、网易、google】,用户可退出、返回上一层,也可输入选择
    View Code
     1 # 递归思想
     2 def menu_func(menu):
     3     while True:
     4         for key in menu:
     5             print(key)
     6         inp = input('>>>').strip()
     7         if inp.upper() == 'Q': return 'q'
     8         if inp.upper() == 'B': return 'b'
     9         elif menu.get(inp):
    10             flag = menu_func(menu[inp])
    11             if flag == 'q': return 'q'
    12 menu_func(menu)
    13 print('已退出')
    View Code
     1 # 堆栈思想
     2 lst = [menu]
     3 while lst:
     4     for key in lst[-1]:
     5         print(key)
     6     inp = input('>>>')   
     7     if inp.upper() == 'Q':
     8         break
     9     elif inp.upper() == 'B':  # 返回上一层
    10         lst.pop()   # pop默认删除列表的最后一个元素
    11     elif lst[-1].get(inp):
    12         lst.append(lst[-1][inp])
    View Code
  • 相关阅读:
    flutter 3des
    flutter踩坑记
    【OS_Windows】彻底关闭windows10自动更新
    使用 httpclient 上传下载文件
    git操作
    jmeter在Windows下请求https的接口
    python xlsxwriter简单使用
    asp.net core webapi 文件下载实现
    使用微信小程序连接到 MQTT 云服务
    MQTT.js 入门教程
  • 原文地址:https://www.cnblogs.com/liuweida/p/11099955.html
Copyright © 2020-2023  润新知