![](/img/trans.png)
[英]Python - function returns true when a given number is a prime number or else false
[英]Prime number function returns true instead of false
for
循环永远不会运行,因为range(2, 0-1)
为空。 这意味着执行else
块(将for/else
视为for/nobreak
)返回True
。
首先:else语句完全没有用,您只需删除它即可。 此外,当您将0、1或2作为参数传递时,for循环中包含的内容不会运行,因为循环从2开始并以参数值-1结束。
为了使您的功能正常工作,您可以按以下步骤进行更改:
def is_prime(x):
for n in range(2,x-1):
if (x%n) == 0:
return False
return (True if x>1 else False)
戴夫
如果条件为0,则应该有额外的条件
def is_prime(x): # step 1
if(x==0 or x==1):
return False
for n in range(2,x-1): # step 2
if (x % n) == 0: # step 3
return False
else: # step 4
return True
以下代码可以完成您想要的工作...
0和1绝不是素数,因此应始终返回False。
数字2应该返回True,但是不方便放入range()函数,如其他评论者所述。
def is_prime(x): # step 1
if x == 0 or x == 1:
return False
elif x == 2:
return True
for n in range(2,x-1): # step 2
if x % n == 0: # step 3
return False
else: # step 4
return True
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.