变量的上标

问题描述 投票:0回答:2

我想打印一个变量作为上标。我做了很多研究,很多人都使用 Unicode 的方法。类似于

print("word\u00b2")
,其中 2 将位于上标中。但是,我想用变量替换 2。这些是我尝试过的方法

print("word\u00b{variable}")
print("word\u00b{}".format(variable))
print("word\u00b%s" % variable)

当然还有反斜杠

print("word\u00b\{variable}")
print("word\u00b\{}".format(variable))
print("word\u00b\%s" % variable)

同样,我也尝试过类似的事情

variable = variable.decode(u\"u00b")

当我不断得到时,以上都不起作用

(unicode error) 'unicodeescape' codec can't decode bytes in position 5-9: truncated \uXXXX escape

一些帮助将不胜感激。

python variables unicode superscript
2个回答
3
投票

转义码

\u00b2
是单个字符;你想要类似的东西

>>> print(eval(r'"\u00b' + str(2) + '"'))
²

不那么复杂,

>>> print(chr(0x00b2))
²

但这仅适用于上标 2 和 3; 其他 Unicode 上标位于不同的代码块中

>>> for i in range(10):
...   if i == 1:
...     print(chr(0x00b9))
...   elif 2 <= i <= 3:
...     print(chr(0x00b0 + i))
...   else:
...     print(chr(0x2070 + i))
⁰
¹
²
³
⁴
⁵
⁶
⁷
⁸
⁹

2
投票

如果您希望整个变量都带有上标,则必须使用

%
格式。如果您尝试
.format()
它,它只会为第一个字母或数字添加上标,因为它使用括号将
$$
内的数字分组。

我的代码是这样写的:

print(r'$y=%f*x^{%f}$' % (var_A, var_B)

这样就不用调用Unicode了。我发现这种方法适用于图形标题、轴标题、图形图例。

我希望这有帮助!

© www.soinside.com 2019 - 2024. All rights reserved.