【问题标题】:Function to check if number is a prime number检查数字是否为素数的函数
【发布时间】:2020-11-18 12:24:13
【问题描述】:
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 之后?

【问题讨论】:

  • 如果输入的是素数(或者if语句的条件满足)else语句将不会被执行,反之亦然。

标签: python boolean primes


【解决方案1】:

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 块中。

【讨论】:

    【解决方案2】:

    return True告诉python返回一个布尔值Truereturn False告诉python返回一个布尔值False。如果使用某个数字调用函数给您True,则该特定数字是质数。否则,它不是质数。

    【讨论】:

      【解决方案3】:

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

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

      示例


      • n = 6

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

      • n = 5

        Statement n >= 2 计算结果为 True,因此执行了 for 循环。 i 的所有值都不能与 n 整除,因此不会执行 return 语句。最后,到达函数的最后一行并执行return True,这表明n 是一个素数。

      • n = 0

        语句 n >= 2 评估为 False。因此,else 语句下的return False 语句被执行,它告诉n 不是素数。

      【讨论】:

        猜你喜欢
        • 2013-03-22
        • 1970-01-01
        • 2016-02-19
        • 2021-04-20
        • 2013-06-17
        • 2022-01-08
        • 1970-01-01
        • 1970-01-01
        • 2015-09-15
        相关资源
        最近更新 更多