首页 > 解决方案 > 在 Jupyter Notebook Markdown Cell Python 中打印变量

问题描述

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

试过的代码:

value = 5.3

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

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

截屏

代码截图

标签: pythonjupyter-notebook

解决方案


@nilansh bansal 的回答非常适合 Jupyter Notebooks。不幸的是,它不适用于 JupyterLab,因为不再支持该插件(所有 nbextension 插件都是如此)。由于 JupyterLab 越来越受欢迎,我想补充到目前为止的答案,因为我花了很长时间才找到解决方案。这是因为到目前为止还没有与 JupyterLab 兼容的插件。通过结合这个这个SO 答案,我为自己找到了以下解决方案:

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))

或者,可以按照@Igor Fobia for Python >3.6的建议简化最后一行:

md(f"The data consists of {n} observations. Bla, Bla, ....")

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

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

我已经写了一篇详细的博客文章,介绍了我如何实现这个在我的博客上发布笔记本的解决方案。如果您使用 JupyterLab < 2.0,您可以安装jupyterlab-celltagsJupyterLab 的插件来简化单元格标记。


推荐阅读