[英]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 True
后return 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 返回一個布爾值True
, return 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.