【发布时间】:2017-06-02 00:05:43
【问题描述】:
问题
我很高兴自己在编写 Python 3 代码时在变量名中使用 Unicode 文字。今天我遇到了一个奇怪的错误,原来是由于 Python 没有区分变量 ρ 和 ϱ,如下短代码所示:
ρ = 'hello'
ϱ = 'goodbye'
print(ρ) # Prints 'goodbye'
这是错误还是功能?在后者的情况下,我如何/在哪里可以找到以这种方式属于一起的所有此类字符的集合?
进一步探索
当在字符串中使用ρ 和ϱ 时,不会出现这种差异:
a = 'ρ'
b = 'ϱ'
print(a == b) # Prints False
这让我确信这不是我的编辑器/终端的编码问题。
我们还可以使用 unicodedata 模块确认 Python 完全知道我们正在处理的字符:
import unicodedata
print(unicodedata.name('ρ')) # Prints 'GREEK SMALL LETTER RHO'
print(unicodedata.name('ϱ')) # Prints 'GREEK RHO SYMBOL'
我发现 φ(希腊小写字母 PHI)和 ϕ(希腊 PHI 符号)之间的行为相同。
【问题讨论】:
标签: python python-3.x unicode python-unicode