【发布时间】:2018-01-30 15:44:02
【问题描述】:
我遇到了一些urwidtutorial,其中包括一个示例代码如下:
...
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}' 字符串字面量让我几乎一整天都发疯了,直到我发现它被包含在内 - 作为 cmets! — 在/usr/lib/python3.5/encodings/ 下的文件中... 但是我没有找到任何关于使用这种符号的提示。我浏览了 Python 文档,却一无所获。
出于好奇,我在 python 解释器中运行:
print(u'\N{LOWER ONE QUARTER BLOCK}')
我得到了
▂
这种黑魔法从何而来?我的意思是,它在哪里解释了人们可以使用...表示法(?)使用它们的友好名称打印出特殊字符? Python 是否隐藏了其他类似的惊喜?
【问题讨论】:
-
Unicode 字符有这样长的名字
-
见
unicodedata,例如print(unicodedata.lookup('MEDIUM SHADE')给了▒。 -
@PeterWood 谢谢!它现在在精神上被标记为终身 :-) .
标签: python special-characters string-literals