我正在尝试使用字符串格式化的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
任何帮助表示赞赏
答案 0 :(得分:3)
\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字符。