如何将unicode下标与字符串格式结合起来

How to combine unicode subscript with string formatting

我正在尝试使用字符串格式设置 unicode 下标... 我知道我可以做这样的事情...

>>>print('Y\u2081')
Y₁
>>>print('Y\u2082')
Y₂

但我真正需要的是这样的东西,因为我需要下标来遍历一个范围。显然这不起作用。

>>>print('Y\u208{0}'.format(1))
  File "<ipython-input-62-99965eda0209>", line 1
    print('Y\u208{0}'.format(1))
         ^
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 1-5: truncated \uXXXX escape

感谢任何帮助

\uhhhh 是字符串文字中的 转义语法 。您必须生成原始字符串(忽略转义语法),然后 重新应用 正常的 Python 转义解析器处理:

import codecs

print(codecs.decode(r'Y\u208{0}'.format(1), 'unicode_escape'))

但是,您最好使用 chr() function 来生成整个字符:

print('Y{0}'.format(chr(0x2080 + 1)))

chr()函数接受一个整数并输出字符串中相应的Unicode代码点。上面定义了一个十六进制数并加 1 以产生您想要的 2080 范围 Unicode 字符。