# filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。
# 分解生成器
# list()集合中包含filter()过滤序列
# 循环体
# 判断条件 不能 i % j == 0
l = list(
filter(
lambda x: x not in set([
i for i in range(101, 201) # for循环用range
for j in range(2, i - 1)
if not i % j]), range(101, 201)))
print('一共有{}个素数,这些素数分别是:\n{}'.format(len(l), l))
我在里面出现这样一个问题
# filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。
# 分解生成器
# list()集合中包含filter()过滤序列
# 循环体
# 判断条件 不能 i % j == 0
l = list(
filter(
lambda x: x not in set([
i for i in range(101, 201) # for循环用range
for j in range(2, i - 1)
if not i % j == 0]), range(101, 201)))
print('一共有{}个素数,这些素数分别是:\n{}'.format(len(l), l))
以上内容不一样的地方在这个地方
if not i % j
if not i % j == 0
输出结果分别为
一共有21个素数,这些素数分别是:
[101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199]
一共有0个素数,这些素数分别是:
[]
我一直搞不明白,问问大佬们为什么