如何在 Jupyter 笔记本电脑上程序化地生成减价输出?

我想用 Jupyter 笔记本写一篇课程报告。我想数一些东西,产生一些结果,并包括他们在降价。是否可以将单元格的输出设置为标记?
我想这样的命令: print '$\phi$'生成 phi 符号,就像在降价。
换句话说,我希望有一个模板,在标记和插入的价值所生成的程序写在笔记本上。重新计算笔记本电脑应该产生新的结果和新的降价与这些新的价值插入。这个软件可以做到吗,还是我需要自己替换数值?

88047 次浏览

您需要的函数在 显示模块中。

from IPython.display import display, Markdown, Latex
display(Markdown('*some markdown* $\phi$'))
# If you particularly want to display maths, this is more direct:
display(Latex('\phi'))

你基本上是在要求两件不同的事情:

  1. 输出代码结果的标记单元格。

    我想数一些东西,产生一些结果,并包括他们在降价。[ ... ]我希望在笔记本上有程序生成的 标记和插入值 中的模板

  2. 代码单元格输出 markdown

    我想这样的命令: print '$\phi$'生成 phi 符号,就像在降价。

从2号开始。已经被 另一个答案覆盖(基本上: 使用从 IPython.display导入的 Latex()或者 Markdown()) ,我将重点介绍第一个:


1. 带插入变量的标记模板

随着木星的扩展 Python Markdown实际上可以做到你所描述的那样。

安装说明 可以在 nbextended 的 github 页面上找到。确保使用 木星指挥部扩展配置程序扩展配置程序启用 python 标记扩展。

通过扩展,可以通过 \{\{var-name}}访问变量:

Markdown Cell 中的 Python 代码

变量 a 是\{\{ a }}

您还可以在这里嵌入 LateX: { b }} !

甚至可以嵌入图像: \{\{ i }}

当然,所有的变量或图像 abi应该在以前的代码设置。当然,您也可以在不使用 print 命令的情况下使用 Markdown-Latex 样式的表达式(如 $\phi$)。该图像来自扩展的 wiki,演示了该功能。

example from wiki


关于集成到 ipython/jupyter 中的这个功能的进一步信息将在 巨蟒Jupyter的问题跟踪程序中进行讨论。

作为托马斯回答的补充。另一种更简单的渲染标记的方法是使用 IPython.display模块中的 display_markdown函数:

from IPython.display import display_markdown


display_markdown('''## heading
- ordered
- list


The table below:


| id |value|
|:---|----:|
| a  |  1  |
| b  |  2  |
''', raw=True)

产出如下:

enter image description here

谷歌 Colab 笔记本上可以找到使用示例

另一种选择是使用 瑞奇进行 Markdown 渲染,使用 UnicodeIt进行符号渲染。它有一些局限性,比如 Rich 使用 CommonMark,它不支持表。Rich 还有其他呈现表的方法; 这在文档中有详细说明。

这里有一个例子:

from rich.markdown import Markdown
import unicodeit


alpha = unicodeit.replace('\\alpha')
epsilon = unicodeit.replace('\\epsilon')
phi = unicodeit.replace('\\phi')


MARKDOWN = f"""
# This is an h1


Rich can do a pretty *decent* job of rendering markdown.


1. This is a list item
2. This is another list item


## This is an h2


List of **symbols**:


- alpha: {alpha}
- epsilon: {epsilon}
- phi: {phi}


This is a `code` snippet:


```py
# Hello world
print('Hello world')
```


This is a blockquote:


> Rich uses [CommonMark](https://commonmark.org/) to parse Markdown.


---


### This is an h3


See [Rich](https://github.com/Textualize/rich) and [UnicodeIt](https://github.com/svenkreiss/unicodeit) for more information.
"""


Markdown(MARKDOWN)

产生以下结果:

Rich + UnicodeIt output

from tabulate import tabulate
from IPython.display import Markdown
A2 = {
'Variable':['Bundle Diameter','Shell Diameter','Shell Side Cross Flow area','Volumetric Flowrate','Shell Side Velocity'],
'Result':[3.4, 34, 78.23, 1.0 ,  2.0],
'Unit' : ['$in$', '$in$', '$ft^2$', '$ft^{3}s^{-1}$', '$fts^{-1}$']}
temp_html=tabulate(A2, headers='keys', tablefmt='html')
Markdown(temp_html.replace('<table>','<table style="width:50%">'))

. place ()的使用不会破坏乳胶代码,并避免列过度扩展。这样可以用 Latex 动态生成表