【问题标题】:Where does "\N{SPECIAL CHARACTER}" in Python come from?Python 中的“\N{SPECIAL CHARACTER}”从何而来?
【发布时间】: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


【解决方案1】:

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

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

【讨论】:

  • 天哪……我更尴尬了!似乎我忽略了 Python 文档中关于字符串文字的那部分。非常感谢。
  • @Nasha 只是added in 3.3,别难过。
猜你喜欢
  • 2022-12-16
  • 2011-05-29
  • 1970-01-01
  • 2015-01-04
  • 2016-02-24
  • 1970-01-01
  • 2014-01-03
  • 2015-12-04
  • 1970-01-01
相关资源
最近更新 更多