Python中的"\N{特殊字符}"是从哪里来的?

9

我看到了一些关于urwid教程,其中包含这样的代码示例:

...
main = urwid.Padding(menu(u'Pythons', choices), left=2, right=2)
top = urwid.Overlay(main, urwid.SolidFill(u'\N{MEDIUM SHADE}'),
    align='center', width=('relative', 60),
    valign='middle', height=('relative', 60),
    min_width=20, min_height=9)
urwid.MainLoop(top, palette=[('reversed', 'standout', '')]).run()

那个字符串字面量u'\N{MEDIUM SHADE}'让我抓狂了一整天,直到我发现它被包含在/usr/lib/python3.5/encodings/目录下的文件中——作为注释!但是我没有找到任何提示使用这种符号。我浏览了Python文档,但没有找到任何信息。

出于好奇心,我在我的Python解释器中运行了以下代码:

print(u'\N{LOWER ONE QUARTER BLOCK}')

我已经得到了。

这种黑魔法是从哪里来的?我的意思是,有没有解释可以使用那个...符号打印特殊字符的友好名称?Python是否隐藏了其他类似的惊喜?


Unicode字符有着像这样的长名称。 - user1781434
1
请参阅unicodedata,例如print(unicodedata.lookup('MEDIUM SHADE')会输出▒。 - Peter Wood
@PeterWood 谢谢!现在我已经在脑海中永久地收藏了它 :-)。 - user4113344
1个回答

12

哦,亲爱的...我感到更尴尬了!看来我忽略了Python文档中关于字符串字面值的那一部分。非常感谢。 - user4113344
1
@Nasha,这只是在3.3版本中添加的,不要感到难过。 - Peter Wood

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接