检查数字是否为素数的函数

Function to check if number is a prime number

def is_prime(n):
   
    if n >= 2:
        for i in range(2, n):
            if not (n % i):
                return False
    else:
        return False
    return True

我试图编写一个代码,如果一个数字是质数,它会检查。我在互联网上找到了这段代码,效果很好。但是,我对编码还比较陌生,所以我想知道是否有人可以为我解释最后两行。为什么 return Truereturn False 之后?

return Falseelse 块内,而 return True 只有 运行 如果 if 成功。

同样程序的另一种写法

def is_prime(n):
   
    if n >= 2:
        for i in range(2, n):
            if not (n % i):
                return False
        return True  # Return True here, instead of at the end
    else:
        return False

这完全相同,我只是将 return True 语句移到第一个 if 块中。

return True 告诉 python 到 return 布尔值 Truereturn False 告诉 python 到 return False 的布尔值。如果用某个数字调用该函数得到 True,则该数字是质数。否则,它不是质数。

如果您查看语句 if n >= 2,您会注意到它对大于 2 的任何数字进行所有主要计算。如果传递的数字 n 小于 2 会怎样?那么,else 语句就被调用了。因此,当 n 为 0 或 1 时,您就知道它不是质数。因此,执行 return False 表明该数不是质数。

来到另一条线。当所有的计算都完成并且 return False 甚至没有执行一次时,解释器到达函数的最后一行并执行 return True 这告诉数字是素数。

例子


  • n = 6

    语句 n >= 2 的计算结果为 True,因此执行 for 循环。当循环变量 i 的值为 2 时,行 if not (n % i) 的计算结果为 True,然后执行 return False 表明 n 不是质数。

  • n = 5

    语句 n >= 2 的计算结果为 True,因此执行 for 循环。 i 的 None 个值可以被 n 整除,因此,没有 return 语句被执行。最后,到达函数的最后一行并执行 return True,表明 n 是质数。

  • n = 0

    语句 n >= 2 的计算结果为 False。因此,执行 else 语句下的 return False 语句,表明 n 不是质数。