O.r*_*rka 1 python variables unicode object
我一直在尝试找出如何将非ascii unicode字符用作Python 3变量,但是我不确定哪个可以工作,哪些不可以。为什么要?工作但?不工作?是否可以?用作角色或目前无法使用?
# Version
sys.version
'3.6.4 |Anaconda, Inc.| (default, Jan 16 2018, 12:04:33) \n[GCC 4.2.1 Compatible Clang 4.0.1 (tags/RELEASE_401/final)]'
? = 10
print(? )
# 10
? = 20
# File "<ipython-input-24-b5e030117292>", line 1
# ? = 20
# ^
# SyntaxError: invalid character in identifier
Run Code Online (Sandbox Code Playgroud)
在Python参考中的“ 标识符”下有记录。
但是简短的版本是,您只能使用字母和数字以及标识符中的一些特殊连接符,并且?(U+2206,INCREMENT)不是字母,它是数学运算符(属于Symbol, Math类别)。
如果您打算使用?(U+0396,GREEK CAPITAL LETTER DELTA)…好吧,这是一个可以理解的错误,因为它们不仅在大多数字体中看起来非常接近或完全相同,而且即使在黑板上书写时也通常无法区分(“增量”符号的重点是这是一个三角洲)。但是它们不是相同的字符,只有一个打算用作字母的字符才能成为变量名的一部分。
此外,文档中提到但未链接到Python标准所基于的Unicode标准,因此这里是链接:UAX-31:Unicode标识符和模式语法(又名TR-31)。