`

打印菜单(printMenu.py)

阅读更多
# 需求:
# 可依次选择进入各子菜单
# 可从任意一层往回退到上一层
# 可从任意一层退出程序
# 所需新知识点:列表、字典

# 踩分点:
# 1.只用一个while循环,且整体代码量少于15行按完成需求/条—25分
# 2.只用一个while循环,且整体代码量多于15行需求全部完成给90分
# 3.其他情况按完成需求/条—20分

menu = {
    '北京': {
        '海淀': {
            '五道口': {
                'soho': {},
                '网易': {},
                'google': {}
            },
            '中关村': {
                '爱奇艺': {},
                '汽车之家': {},
                'youku': {},
            },
            '上地': {
                '百度': {},
            },
        },
        '昌平': {
            '沙河': {
                '老男孩': {},
                '北航': {},
            },
            '天通苑': {},
            '回龙观': {},
        },
        '朝阳': {},
        '东城': {},
    },
    '上海': {
        '闵行': {
            "人民广场": {
                '炸鸡店': {}
            }
        },
        '闸北': {
            '火车站': {
                '携程': {}
            }
        },
        '浦东': {},
    },
    '山东': {},
}
path, msg = [menu], ''
while True:
    print(list(path[-1].keys()), '\t>>>' if len(msg) > 0 else '', msg)
    choice = input("输入下一级地址,退出(q),后退(b):").strip(' \t\n\r')
    if choice == 'q':
        break
    elif choice == '':
        msg = '输入不能为空!'
    elif choice == 'b':
        msg = '到顶了!' if len(path) == 1 else path.pop() and ''
    elif choice in path[-1]:
        msg = path.append(path[-1][choice]) or ''
    else:
        msg = '地址输入错误!'


不能再短(*^▽^*):
path, msg = [menu], ' '
while True:
    print(list(path[-1].keys()), '' if msg == ' ' else '\t>>>', msg)
    choice = input("输入下一级地址,退出(q),后退(b):").strip(' \t\n\r')
    if choice == 'q':
        break
    else:
        msg = (choice == '' and '输入不能为空!') \
          or (choice == 'b' and (len(path) == 1 and '到顶了!'or path.pop() and ' '))\
          or (choice in path[-1] and (path.append(path[-1][choice]) or ' ')) \
          or '地址输入错误!''
分享到:
评论

相关推荐

    原生JS打印插件之jQuery.EasyPrint.js使用文档

    原生JS打印插件之jQuery.EasyPrint.js使用文档 调用浏览器自带打印功能,使用JavaScript的 window.print(); 方法。 使用JS实现打印功能;JavaScript 实现打印操作;javascript打印大全;通用;js实现打印的方式;JS...

    setuptools模块ez_setup.py安装文件 functl模块文件

    例如,如果functl.py中有函数`print_hello()`,你可以这样调用它: ```python import functl functl.print_hello() ``` 总结来说,setuptools和ez_setup.py是Python包管理和安装的重要工具,functl.py则是一个可能...

    PrintSpooler.apk源码 (安卓内置打印apk源码)

    "PrintSpooler.apk源码" 指的是Android系统中用于管理打印任务的服务——PrintSpooler的相关源代码。在Android系统中,PrintSpooler服务是内置于操作系统中的,负责处理打印作业,与各种打印机进行通信,并管理用户...

    Python库 | path.py-6.0.zip

    这将打印出`/home/user/documents`目录下的所有文件路径。 **5. 文件内容操作** 读取文件内容: ```python with p.open('r') as f: content = f.read() ``` 写入文件: ```python p.write_text('Hello, World!', ...

    panic.py增强版

    经过修改过的panic.py文件 1、不必放在项目根目录,可以放在任意位置 2、product信息可以做为参数传入 ... -h print help info 详细信息参见http://liuju1234.blog.163.com/blog/static/162281520111126105523630/

    详解python3中用HTMLTestRunner.py报ImportError: No module named 'StringIO'如何解决

    在Python3中使用HTMLTestRunner.py时,可能会遇到一个常见的问题,即报出"ImportError: No module named 'StringIO'"的错误。这个问题的出现,主要是因为在Python3中,StringIO模块已经被io模块中的StringIO类所取代...

    printScreen.py

    截屏用的代码,适用于windows,需要安装pywin32和pynput模块。可以随时按F12截屏(快捷键可自行修改),图片会自动保存在脚本所在文件夹,游戏和视频截屏爽歪歪~

    GrabImage.py

    print("未能获取图像") ``` `ret`是布尔值,表示是否成功读取了一帧;`frame`则是读取到的图像数据,可以是灰度图像或彩色图像,取决于相机设置和OpenCV的处理。 为了优化图像质量和处理速度,GrabImage.py可能...

    对python同一个文件夹里面不同.py文件的交叉引用方法详解

    5. 最终,在 `bb.py` 中尝试打印 `aa.a` 时,由于 `a` 变量尚未被定义(在 `aa.py` 的后续代码中定义),导致 `AttributeError` 错误。 #### 三、解决方案 为了避免上述错误,可以采取以下策略: - **修改 `bb.py...

    基于jquery.print.js插件的js打印demo

    基于jquery.print.js插件的js打印demo,简单易用,使用详细教程请查看我的个人主页的博客《一款很好用的Jquery 打印插件——jQuery.print.js》

    c#报表打印20Print源码.rar

    c#报表打印20Print源码.rar

    Python引用(import)文件夹下的py文件的方法

    Python的import包含文件功能就跟PHP的include类似,但更确切的说应该更像是PHP中的require,因为Python里的import只要目标不存在就报错程序无法往下...print dir.b.name 执行 a.py 报错 提示找不到这个模块的名字 d

    Python库 | serial-0.0.55-py2.py3-none-any.whl

    Python库`serial-0.0.55-py2.py3-none-any.whl`是针对Python编程语言的一个软件包,主要用于实现串行通信(Serial Communication)。这个库在Python的开发中扮演着重要的角色,尤其对于那些需要与硬件设备进行低级别...

    PyPI 官网下载 | path.py-9.0.1.tar.gz

    **PyPI 官网下载 | path.py-9.0.1.tar.gz** 在Python的世界里,PyPI(Python Package Index)是官方的第三方库仓库,它为开发者提供了一个平台来发布和分享他们的软件包。当你在项目中需要使用到特定功能的库时,...

    discussion.zip Python关于import的实验(10) 利用__init__.py文件将变量和包下的模块作为包的属性

    print(my_package.public_variable) # 输出: "This is a public variable in the package." my_package.mod1_func() my_package.mod2_func() ``` 这种做法使得我们可以对包内的模块进行组织,同时提供了一种控制...

    Python库 | pynput-1.7.6-py2.py3-none-any.whl

    这段代码会打印出每次用户按下的键。 **鼠标控制** `pynput.mouse`模块则提供了对鼠标的控制。你可以监听鼠标事件,如点击、移动和滚动: ```python from pynput import mouse def on_click(x, y, button, ...

    bin2datastruct_print.py

    读取二进制bin文件,生成一个数组格式的txt文件;使用python编写;

    PrintControl.cab下载

    PrintControl.cab可能包含了控制面板应用程序、设置向导或其他与打印相关的管理工具。 CAB 文件通常包含以下几部分: 1. **驱动程序文件**:这些是与特定打印机型号兼容的二进制文件,它们实现了操作系统与打印机...

    demo-1-print().py

    demo-1-print().py

    c#报表打印VPrint源码.rar

    "c#报表打印VPrint源码.rar" 提供的是一套基于C#实现的报表打印解决方案,名为VPrint。通过分析这个压缩包中的内容,我们可以深入理解C#中报表打印的基本原理和实现方法。 首先,让我们了解C#中的报表打印基础。在...

Global site tag (gtag.js) - Google Analytics