Pav*_*dau 3 python algorithm primes list
我刚刚学习了learing python,我正在尝试创建一个接受整数的简单函数,并返回从2到该整数的所有素数的列表.
我已经创建了函数,但代码似乎不起作用.我已经找到了解决方案,只针对更有效(和复杂)的方法(比如这个使用list comprehention查找素数)来解决这个问题,但这并不能帮助我找到错误.
def list_of_primes(n):
primes = []
for y in range (2, n):
for z in range(2, y):
if y % x == 0:
continue
else:
primes.append(y)
primes.sort()
return primes
Run Code Online (Sandbox Code Playgroud)
代码有什么问题?
您的代码中存在多个错误.下面是您的算法的工作实现.
def list_of_primes(n):
primes = []
for y in range (2, n):
for z in range(2, y):
if y % z == 0:
break
else:
primes.append(y)
primes.sort()
return primes
list_of_primes(20)
# [2, 3, 5, 7, 11, 13, 17, 19]
Run Code Online (Sandbox Code Playgroud)
说明
y被整除z,而不是通过x尚未定义的变量.for循环之外.break在发现非素数时跳过数字.else在内for循环上应用语句,而不是if/ else子句的一部分.