gpt4 book ai didi

python - 是否可以在不删除前一个字符的情况下在彼此之上打印字符以同时具有上标和下标?

转载 作者:行者123 更新时间:2023-12-05 05:49:05 32 4
gpt4 key购买 nike

我想知道我是否可以使用 print() 输出

                                    

在终端和/或 IPython/Jupyter Notebook 中。我想开发一个使用公差尺寸的库,这些类型的 pretty-print 输出在开发和测试过程中会非常方便。

目前我所知道的:

  • 有转义字符,例如回车符 \r 会转到行首而不删除现有字符,退格符 \b 会删除最后一个字符.例如 print("some text\bsome other text\rbingo", end="") 应该给我 bingotexsome other text。无论如何,当打印一个新字符时,之前的字符会被删除。
  • 我也知道如何使用 Unicode 字符来设置上标/下标数字和加号/减号。例如,print('1.23\u207a\u2074\u2027\u2075\u2076') 会给我类似 1.23+4.56print('1.23\u208b\u2087.\u2088\u2089') 输出接近 1.23-7.89。尽管上标/下标十进制分隔符(在本例中为句点/点/点)应使用哪些 unicode 字符仍有争议。上标点有多个选项,包括 \u0387\u22c5。但是,AFIK 没有适合下标点的 unicode 字符。 (更多信息 here )

我不知道

  • 是否有转义字符或 Unicode 字符复制键盘上的左箭头 键?
  • 如何在不删除终端像素的情况下进行打印?有没有一种方法可以在彼此之上打印/显示字符?
  • 如果在终端中以上都不可能,我是否/如何控制 Jupyter Notebook 中的 HTTP/CSS 输出以同时打印上标和下标?

最佳答案

在 Jupyter Notebook/Lab 中这应该可以工作:

from IPython.display import Math

Math(r"1.23^{+4.56}_{-7.89}")

为了方便,可以封装在一个类中:

from IPython.display import Math

class PPrint:
def __init__(self, base, sub, sup):
self.base = base
self.sub = sub
self.sup = sup


def _ipython_display_(self):
display(Math(f"{{{self.base}}}^{{{self.sub}}}_{{{self.sup}}}"))

然后你可以创建一个实例例如:

x = PPrint("1.23", "+4.56", "-7.89")

并且如果您在笔记本中执行 xdisplay(x),它应该显示为您的示例。

关于python - 是否可以在不删除前一个字符的情况下在彼此之上打印字符以同时具有上标和下标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70712672/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com