a=[2,3,4,9a] #error
a=[2,3,4,9b] # error
.
.
.
a=[2,3,4,9j] # okay
a=[2,3,4,9k] # error
.
.
a=[2,3,4,9z] # error
我明白为什么其他人会出错,但为什么a=[2,3,4,9j]
还可以
9j
是虚数(复数),因此它是有效的文字。其他的不是。可能你想要字符串,在这种情况下你应该用引号(单引号或双引号)写'9a'
,'9b'
等。
请参阅文档的这一部分:
有四种不同的数字类型:纯整数、长整数、浮点数和复数。[...]
数字由数字文字或内置函数和运算符创建。未经修饰的整数文字(包括二进制、十六进制和八进制数)会产生纯整数,除非它们表示的值太大而无法表示为纯整数,在这种情况下,它们会产生长整数。带有'L'或'l'后缀的整数文字产生长整数('L' 是首选,因为 1l 看起来太像十一了!)。包含小数点或指数符号的数字文字产生浮点数。将“j”或“J”附加到数字文字会产生一个实部为零的复数。
因此,这两个实际上是有效的表达式:
a=[2,3,4,9j] # okay
a=[2,3,4,9l] # no error
您偶然发现了 python 中的复数符号。出于某种原因,j
用于代替i
虚数。