" \ N {SPECIAL CHARACTER}"在Python中来自哪里?

时间:2018-01-30 15:44:02

标签: python special-characters string-literals

我遇到了一些urwid tutorial,其中包含一个代码示例如下:

...
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会隐藏像这样的其他任何惊喜吗?

1 个答案:

答案 0 :(得分:11)

接近https://docs.python.org/3/reference/lexical_analysis.html#string-and-bytes-literals的结尾:

  

\ N {name} - Unicode数据库中名为 name 的字符