Nums = range(1,60)
def is_prime(Nums):
for x in range(2, Nums):
if (Nums%x) ==0:
return False
return True
prime_numbers = list(filter(is_prime,Nums))
Print(prime_numbers)
使用
for x in range(2, Nums)
语法,我预计会引发错误,因为 Nums 参数不是整数。然而,python 成功解释了它并移动到下一行代码。
再说一遍,
if (Nums%x) ==0
语法是什么意思
您会感到困惑,因为截取的代码对函数参数和全局变量使用相同的变量名。
代码可以解释如下:
Nums = range(1,60)
def is_prime(n):
print(n)
for x in range(2, n):
if (n%x) ==0:
return False
return True
prime_numbers = list(filter(is_prime,Nums))
print(prime_numbers)
您还可以使用
type
函数查看函数内部 Nums
参数 (n
) 的类型(它是 int
)。
我建议您阅读这里有关
filter
功能的更多信息,如果这还不够,您可以自己搜索。
表达式
if (Nums%x) ==0
检查 Nums
除以 x
时是否没有余数