在我正在编写的 Python 程序中,我需要打印 ©(版权)符号。是否有捷径可寻?还是 Python 不支持它?这是一个例子。
print ("\(copyright symbol here\)")
只是一个非常简单的问题。谢谢!
在 Python 中,您可以通过三种方式将 Unicode 字符放入字符串中。(如果您使用的是 2.x 而不是 3.x,则使用 Unicode 字符串更简单——例如 inu"…"
而不是"…"
——而且你必须使用unichr
instead of chr
,否则一切都是一样的。)
U
和 8 个数字。'\N{COPYRIGHT SIGN}'
: 使用 Unicode 实体名称转义序列。
COPYRIGHT SIGN
显然比00a9
.你也可以间接地做一些事情——例如,unicodedata.lookup('COPYRIGHT SIGN')
或者chr(0xa9)
将返回与上面的文字相同的字符串。但是真的没有理由不使用文字。
Python 文档中的Unicode HOWTO对此有更多详细信息 - 如果您不愿意阅读整个内容,则字符串类型描述了不同类型的转义序列(以及 unicode 和字节字符串之间的编码/解码问题,这在 2.x 中尤为重要),而Python 源代码中的 Unicode Literals描述了如何指定编码声明。
如果你想要一份你可以使用的所有字符的官方列表,而不是仅仅搜索它们,查看unicodedata
你的 Python 版本的文档,其中包含指向适当版本的 Unicode 字符数据库的链接。(例如,3.3.0 中的 6.1.0、2.7.3 中的 5.2.0 等)您必须浏览几个链接才能到达实际列表,但这是您唯一的方法得到一些可以保证完全是编译成 Python 的东西。(而且,如果你不关心这个,你也可以用谷歌搜索它,或者使用维基百科或你电脑的字符查看器。)
在python 2中:
>>> print u"\u00a9"
©
>>> print u"\N{COPYRIGHT SIGN}"
©
在python 3中:
>>> print("\u00a9")
©
>>> print("\N{COPYRIGHT SIGN}")
©
>>> print("©")
©
在 python 2 中,您必须在字符串前面加上 au ( u"..."
) 来告诉 python 它是一个 unicode 字符串。但是,在 python 3 中,所有字符串都是 unicode 字符串,因此您不必(实际上在 3.0-3.2 中也不允许)在字符串前面加上 u。
您可以在此处查看字符列表及其名称/ unicode 值:http ://www.fileformat.info/info/charset/UTF-16/list.htm 并以与此处使用的版权符号相同的方式使用它们
当然!键入版权符号:
print("©")
(Python 中没有字符实体,比如 HTML。)
版权标志是一个 unicode 字符。如果您的终端支持包含此字符的字符编码(例如 utf-8 或 cp1252),则可以打印它:
这依赖于 Python 检测终端的字符编码:
In [64]: print(u'\N{COPYRIGHT SIGN}')
©
这使用了显式编码(由于我的终端设置为使用 utf-8 字符编码,这恰好可以工作):
In [65]: print(u'\N{COPYRIGHT SIGN}'.encode('utf-8'))
©
print u"\u00A9"
其中“ \u00A9 ”是版权符号的 unicode 字符。