簡體   English   中英

檢查數字是否為質數的函數

[英]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 False位於else塊內,而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

這做完全相同的事情,我只是在第一個if塊中移動了return True語句。

return True告訴 python 返回一個布爾值Truereturn False告訴 python 返回一個布爾值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的值都不能被n整除,因此不執行 return 語句。 最后,到達函數的最后一行並執行return True ,它告訴n是素數。

  • n = 0

    語句n >= 2計算結果為False 因此,執行else語句下的return False語句,它告訴n不是素數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM