【发布时间】:2020-04-09 16:05:07
【问题描述】:
为什么我可以使用类似的东西
import numpy as np
print( (g := np.arange(256)**2) / np.max(g) )
但以下失败了?
foo = list(range(256))
for i in range( (l := len(foo)) // 16 + 0 if l%16 == 0 else 1 ):
print(i)
Traceback (most recent call last):
File "test.py", line 8, in <module>
for i in range( (l := len(foo)) // 16 + 0 if l%16 == 0 else 1 ):
NameError: name 'l' is not defined
【问题讨论】:
-
你还没有定义
l。首先评估l%16 == 0失败。
标签: python-3.x operators