我想打印一个变量作为上标。我做了很多研究,很多人都使用 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
一些帮助将不胜感激。
转义码
\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))
⁰
¹
²
³
⁴
⁵
⁶
⁷
⁸
⁹
如果您希望整个变量都带有上标,则必须使用
%
格式。如果您尝试 .format()
它,它只会为第一个字母或数字添加上标,因为它使用括号将 $$
内的数字分组。
我的代码是这样写的:
print(r'$y=%f*x^{%f}$' % (var_A, var_B)
这样就不用调用Unicode了。我发现这种方法适用于图形标题、轴标题、图形图例。
我希望这有帮助!