在Python中将带有if-all条件的列表理解转换为循环



我正在尝试将我正在学习的课程中的列表理解转换为for循环,但不断遇到错误。我使用的是"如果全部在列表中"理解,但我无法确定排序/如何将其纳入for循环。

我的代码是:

def count_primes(num):
prime = [x for x in range(2,num) if all (x % y != 0 for y in range (2,x))]
return len(prime)

我目前已经尝试(但没有工作(

def count_primes(num):
primes = [2]
for x in range(3,num):
for y in range(2,x):
if x % y == 0:
break
else:
primes.append(x)
break
return len(primes)

这应该可以完成

primes = [2]
for x in range(3, num):
all_check = True
for y in range(2, x):
if x % y == 0:
all_check = False
break
if all_check:
primes.append(x)

在您的示例中,您实际上并没有一直循环来检查值。

最新更新