我在 Python 中做了一个基本的 for 循环,因为我想使用 unicode 表示法打印所有可能的字符。
for i in range(1000,1100):
print('\\u'+str(i))
并打印以下内容
...
\u1077
\u1078
\u1079
等等...
我不明白为什么循环会打印这样的字符串,但如果我只是执行:
print('\u0227')
它会打印 ş。
我不明白从 for 循环打印为连接字符串与仅通过调用 print 并键入 unicode 表示来打印它之间的区别。另外,for 循环生成的字符串似乎还需要一个反斜杠来转义。
我调用了 type 函数,在这两种情况下它都说这些是字符串,但只是想确定一下这种行为。
如果后跟第二个反斜杠,则最终字符串将呈现为 仅包含一个反斜杠。所以
'\\u'
变成
绳
\u
如果后跟 u
'\u0227'
变成字符串
ȧ
正如 Paul Panzer 已经写过的,chr()
unichr()
(对于 Python 2.x)获取 unicode 字符的编号并返回仅包含该字符的字符串。
#!/usr/bin/python3
for i in range(0x0, 0x100):
s = "\\" + "u" + f"{i:#0{6}x}"[-4:]
print(s[-2:], end=" = ")
print(s.encode('utf-8').decode('unicode_escape'))