【问题标题】:Remove '>>> ' from copied and pasted doctest从复制和粘贴的 doctest 中删除 '>>>'
【发布时间】:2017-12-15 12:57:52
【问题描述】:

阅读文档 我经常遇到我想运行的文档测试。假设您想在 Jupyter 笔记本中运行以下命令:

>>> a = 2
>>> b = 3
>>> c = a + b

最快的方法是什么?

【问题讨论】:

    标签: python jupyter-notebook doctest


    【解决方案1】:

    只需将其复制并粘贴到新单元格中即可。 Jupyter 在运行示例时会为您剥离此类标记:

    如果您必须去除标记(也许是出于审美原因),您可以使用一些 Python 代码来执行此操作:

    def extract_console_code(sample):
        return ''.join([l[4:] for l in sample.splitlines(True) if l[:4] in ('>>> ', '... ')])
    
    print(extract_console_code(r'''<paste code here>'''))
    

    注意r 原始字符串文字!这应该适用于大多数 Python 代码。只有当您的代码示例包含更多 ''' 三单引号时,您才必须单独处理它们(通过在代码周围使用双引号,或者通过将部分与不同的字符串文字样式连接在一起)。另外,请注意,我们会跳过任何不以&gt;&gt;&gt;... 开头的行;这些是输出行而不是代码。

    您必须在 Python 脚本中运行它,因为 Jupyter 控制台仍然只是删除那些初始行,因此对于您的确切示例,取决于您添加行的方式,可能是 none 或者只返回几行;任何以&gt;&gt;&gt;... 开头的行,即使是字符串文字,都已经被Jupyter 剥离了!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-11
      相关资源
      最近更新 更多