如何将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 字符。
我正在尝试使用字符串格式设置 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 字符。