对于循环\u python

2024-04-18 23:44:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我不知道为什么这么简单的语法会导致错误。有人能帮我看看我是否漏掉了什么吗?你知道吗

本部分仅尝试检查特定(num)是否为素数。 不知道为什么我的check\u primes(10)会变成'PRIME'。因为我从3,4,5,6,…,9循环通过y->;然后10%5==0,我想它返回true,结果是“Non PRIME”。你知道吗

我有没有做错什么?你知道吗

def check_primes(num):

for y in range(3,num):
        if num%y==0:
            return 'Non PRIME'
        else:
            return 'PRIME'

Tags: ingttrueforreturndefcheck错误
3条回答

返回“PRIME”或“Non PRIME”的方法,如您的示例所示:

def check_primes(num):
    is_prime = True
    for y in range(3,num):
        if num % y==0:
            return 'Non PRIME'
        else:
            continue
    return 'PRIME'

在验证数字是否为素数时,将返回“Non PRIME”。或者,如果您的所有检查都成功,您将根据需要返回“PRIME”。你知道吗

(注意,这不是一个非常有效的获取素数的方法)

(还要注意,下面的注释是正确的,不管是否有else子句,此方法的工作方式完全相同)

“素数”的定义是一个数是素数当且仅当它只能被1和它本身整除。这意味着如果你找到一个从2n-1除以n的数,这个数就不是素数。要检查一个数是否为素数,必须检查从2n-1的每个数。在这两种情况下,测试3的可除性后,代码立即停止。你知道吗

应该使用print而不是return。当你归还它时,你正在破坏你的循环。你知道吗

相关问题 更多 >