为什么"1e-i"不能在列表推导中工作?

The*_*Cat 1 python list-comprehension python-2.7

为什么下面的减号被视为无效令牌?这里肯定有一些我不理解的东西.

>>> [1e-i for i in range(-10,10)]
SyntaxError: invalid token
Run Code Online (Sandbox Code Playgroud)

通常情况下,这些东西像母亲一样评价:

>>> 1e-10
1e-10
Run Code Online (Sandbox Code Playgroud)

我只是好奇; 我解决了我的问题

>>> [10**i for i in range(-10,10)]
[1e-10, 1e-09, 1e-08, 1e-07, 1e-06, 1e-05, 0.0001, 0.001, 0.01, 0.1, 1, 10, 100, 1000, 10000, 100000, 1000000, 10000000, 100000000, 1000000000]
Run Code Online (Sandbox Code Playgroud)

cHa*_*Hao 7

1e-01等等是数字文字.在脚本运行之前,它们被看到并被标记化.这个数字的规则几乎肯定会说"可选('E'或'e',后跟可选的'+'或' - ',后跟数字)".在该定义中没有提供变量,并且更改定义会使得数字文字无法解析直到运行时,这将变得非常毛茸茸.