1.22 字母也玩起了障眼法¶
以下我分别在 Python2.7 和 Python 3.7 的 console 模式下,运行了如下代码。
在Python 2.x 中
>>> valuе = 32
File "<stdin>", line 1
valuе = 32
^
SyntaxError: invalid syntax
在Python 3.x 中
>>> valuе = 32
>>> value
11
什么?没有截图你不信?
如果你在自己的电脑上尝试一下,结果可能是这样的
怎么又好了呢?
如果你想复现的话,请复制我这边给出的代码:valuе = 32
这是为什么呢?
原因在于,我上面使用的 value 变量名里的 е
又不是我们熟悉的
e
,它是 Cyrillic(西里尔)字母。
>>> ord('е') # cyrillic 'e' (Ye)
1077
>>> ord('e') # latin 'e', as used in English and typed using standard keyboard
101
>>> 'е' == 'e'
False
细思恐极,在这里可千万不要得罪同事们,万一离职的时候,对方把你项目里的
e
全局替换成 e
,到时候你就哭去吧,肉眼根本看不出来嘛。