如何使用 f 字符串打印像 sigma 这样的数学符号使用乳胶?

问题描述

x = np.array([5,4,3])
y = np.array([1,2,3])
print(f"{sum(x*y)},{sum(x**2)},{sum(y**2)}")
#> 22,50,14

我想用显示的数学符号打印

\sum{x*y}

但是当我使用 f-string

print(f"$\sum{xy}$ = {sum(x*y)},$\sum{x^2}$ = {sum(x**2)},$\sum{y^2}$ = {sum(y**2)}")

我收到错误NameError: name 'xy' is not defined。 似乎 f-strings 无法识别乳胶代码

这里有什么解决方案?

解决方法

我不确定我是否正确理解了您的问题,但错误的原因是 Python 识别出您的乳胶代码中的花括号并尝试在 f-String 中像往常一样对其进行格式化,因此找不到 {{ 1}} 变量,因为它不存在。

你必须使用双大括号来逃避乳胶大括号:

xy
,

tl;dr:python 无法将 LaTex 打印到终端。

通常,终端只是文本。这意味着无法显示特殊的 LaTeX 图像。

但是,您仍然可以通过某些方式查看 LaTeX(尽管不能通过终端)。

例如,您可以通过终端调用 pdflatex(假设您已安装)

import os

latex = "Insert Latex Code here"
with open("latex.tex","w") as file:
    file.write(latex)

os.system("pdflatex latex.tex")

您的 LaTeX 应呈现为名为 latex.pdf

的 pdf