在Jupyter Notebook Markdown单元Python中打印变量

时间:2018-10-15 08:05:00

标签: python jupyter-notebook

我可以在Markdown Cell Jupyter Notebook中打印变量的值吗?

尝试代码:

value = 5.3

Markdown cell --> Value is {{ value }} 

我希望Markdown单元格显示变量的值

SCREENSHOT

Screenshot for Code

5 个答案:

答案 0 :(得分:4)

因此,在浏览了所有链接之后,我可以通过参考nbextension jupyter笔记本文档来解决问题:https://github.com/ipython-contrib/jupyter_contrib_nbextensions

已采取的步骤:

  1. pip安装jupyter_contrib_nbextensions
  2. jupyter贡献nbextension install --user
  3. jupyter nbextension启用python-markdown / main

上述命令启动jupyter笔记本并在markdown单元格中打印变量的值后,就像魅力一样!

您只需要在降价单元格中使用 {{ac_score}}

屏幕截图

enter image description here

谢谢!

答案 1 :(得分:1)

看看this question,它看起来与您的非常相似。

一种可行的解决方案是使用此Jupyter Extension

答案 2 :(得分:0)

@nilansh bansal的答案非常适合Jupyter Notebooks。不幸的是,它对JupyterLab不起作用,因为不再支持该插件(所有nbextension插件都是这种情况)。自JupyterLab受到欢迎以来,我想补充到目前为止的答案,因为它花了我很多时间才能找到解决方案。这是因为到目前为止,还没有与JupyterLab兼容的插件。通过结合thisthis这样的答案,我为自己找到了以下解决方案:

from IPython.display import Markdown as md
# Instead of setting the cell to Markdown, create Markdown from withnin a code cell!
# We can just use python variable replacement syntax to make the text dynamic
n = 10
md("The data consists of {} observations. Bla, Bla, ....".format(n))

这将导致所需的输出。但是,它具有一个巨大的缺点,即在导出NB时代码单元仍然可见。这可以解决:

  1. 在代码单元格中添加一个标签,即将其命名为“隐藏”
  2. 配置nbconvert以忽略标记的单元格,例如通过将此c.TagRemovePreprocessor.remove_input_tags = {"hide"}添加到您的~/.jupyter/jupyter_notebook_config.py配置文件

我已经写了详细的blog-post,有关我如何实现此解决方案以在博客上发布笔记本。例如,您可以为JupyterLab安装jupyterlab-celltags插件以简化单元格标记。

答案 3 :(得分:0)

{{URL+target+'/'+CODE+'.png?sidcode='+str(sidecode)}} # Shows URL Properly, BUT!...

![__img_01__]({{URL+target+'/'+CODE+'.png?sidcode='+str(sidecode)}}) # why? not working?
![__img_02__]({{URL}}{{target}}/{{CODE}}.png?sidcode={{sidecode}}) # Why not working either?

因此,我强烈建议使用 Ipython.display.Markdown
有人知道上述解决方案吗?

echo = f"""
## {NAME} ({CODE})
- target = '{target}'
- sidecode = '{sidecode}'
![__CHART_IMAGE__]({URL}{target}/{CODE}.png?sidcode={sidecode})
"""

Markdown(echo)

答案 4 :(得分:0)

您可以覆盖%%markdown IPython魔术来替换全局环境中的变量:

from IPython.display import Markdown
from IPython.core.magic import register_cell_magic


@register_cell_magic
def markdown(line, cell):
    return Markdown(cell.format(**globals()))

具有与JupyterLab-LSP一起使用时Markdown掉毛的优势。

如果使用nbsphinx开发文档,则可以通过在单元格元数据中设置{"hide_input": true}来隐藏输入(单元格的来源):

enter image description here (请注意,Jupyter[Lab]LSP带有下划线,因为它们不在英语词典中-棉绒作品!)

这会生成像这样的平滑文档:

enter image description here

为了在JupyterLab中获得更好的体验,您始终可以通过单击输入单元格左侧的蓝色栏(将鼠标悬停在该单元格上方时显示)来折叠该输入单元格。