我正在尝试将我正在学习的课程中的列表理解转换为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)
在您的示例中,您实际上并没有一直循环来检查值。