我在Python中做了一个基本的for循环,因为我想用unicode符号打印所有可能的字符。
for i in range(1000,1100):
print('\\u'+str(i))
并打印以下内容
...
\u1077
\u1078
\u1079
依旧......
我不明白为什么循环打印这样的字符串,但如果我只执行:
print('\u0227')
它会打印ȧ。
我不明白打印作为for循环的串联字符串与仅通过调用print并键入unicode表示来打印它之间的区别。 for循环生成的字符串似乎还需要一个反斜杠才能转义。
我调用了类型函数,在这两种情况下都说它们是字符串,但只是因为这种行为而想要确定。
答案 0 :(得分:2)
代码中所谓的字符串文字在成为字符串之前会被处理。字符串中的反斜杠标记后面必须特别解释的内容。
如果后跟第二个反斜杠,则渲染最终字符串
只包含一个反斜杠。因此字符串文字 '\\u'
变为
字符串 \u
如果后跟一个u
和四个十六进制数字整个序列
文字中的(包括反斜杠)成为字符串中表示的unicode字符:Literal '\u0227'
变为字符串ȧ
正如Paul Panzer已经写过的那样,chr()
(对于Python 3.x)或unichr()
(对于Python 2.x)取一个unicode字符的数字并返回仅包含该字符的字符串。