【问题标题】:generate Markdown from code with condition从有条件的代码生成 Markdown
【发布时间】:2018-07-25 07:52:56
【问题描述】:

在 Jupyter 笔记本中,如果满足某些条件,我想使用 python 代码生成一些降价单元格。

我使用 Ipython.display.Mardown。如果没有给定条件它可以正常工作,但如果给定条件则无法显示任何内容。

这是minimal example

在单元格 1 中,生成预期 Markdown 的代码:

from IPython.display import display, Markdown

Markdown("""
# First test
Here, Markdown is used outside a condition test \n
It works as I expect
""")

在单元格 2 中,一个不生成输出单元格的代码:

SHOW=True

if SHOW:
    Markdown("""
    # Second test
    Here, Markdown is used inside a condition test \n
    It won't show
    """)

使用 Ipython.display.display 函数,字符串以原始形式显示在输出中。

在单元格 3 中,生成输出单元格但字符串不被解释为 Markdown 的代码:

SHOW=True

if SHOW:
    display(Markdown("""
    # Third test
    Here, I also use the display function. \n
    It kind of helps but won't show as I expect
    """))

【问题讨论】:

    标签: python jupyter-notebook


    【解决方案1】:

    在您的示例中,单元格 2 不起作用,因为 Markdown 不像 print 命令,因此它仅在最后一次执行单元格块时显示。

    单元格 3 不起作用,因为您在块引用的开头有一个新行。以下(单元格 3 的更正版本)适用于我:

    SHOW=True
    
    if SHOW:
        display(Markdown("""# Third test
        Here, I also use the display function. \n
        It kind of helps but won't show as I expect
        """))
    

    【讨论】:

    • 酷,如果我删除 all 新行,它会起作用,即单个字符串中的所有内容: display(Markdown("""# Third test \n 在这里,我也使用显示功能。\n\n它有点帮助,但不会像我期望的那样显示""")
    猜你喜欢
    • 2013-01-26
    • 1970-01-01
    • 2021-07-29
    • 2011-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多