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

时间:2016-07-05 17:55:56

标签: python python-3.x unicode python-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

任何帮助表示赞赏

1 个答案:

答案 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字符。