如何判斷能被2整除且不能被3整除


以一個例子說明:求1~100之間能被2整除且不能被3整除的數。

1. 采用 not num % 2 and num % 3 來判斷

>>> lst = [num for num in range(1,100) if not num % 2 and num % 3]
>>> lst
[2, 4, 8, 10, 14, 16, 20, 22, 26, 28, 32, 34, 38, 40, 44, 46, 50, 52, 56, 58, 62, 64, 68, 70, 74, 76, 80, 82, 86, 88, 92, 94, 98]
>>> 

 疑問:為什么判斷語句使用的是:not num % 2 and num % 3,而不是 num % 2 and not num % 3

 實際上 % 是求模的算數運算,得到的結果是一個整數。如果num % 2 結果為 0 說明能被2整除。
 在Python中 數值是可以被當作真/假值處理的,默認情況下,0 被當成False,非0的數值都當成True。

 可以用一句話概括:非空非0時為true;0或空時為false。

2. 采用 num % 2 == 0 and num % 3  != 0  (推薦寫法)

 

>>> lst = [num for num in range(1,100) if num % 2 == 0 and num % 3 != 0]
>>> lst
[2, 4, 8, 10, 14, 16, 20, 22, 26, 28, 32, 34, 38, 40, 44, 46, 50, 52, 56, 58, 62, 64, 68, 70, 74, 76, 80, 82, 86, 88, 92, 94, 98]
>>> 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM