python 判斷奇偶數(shù)的三種方法,最后一種90%的人沒見過。

判斷num是否為整數(shù),num為整數(shù)。

方法一

使用%

num = 10
if (num % 2) == 0:
   print("{0} 是偶數(shù)".format(num))
else:
   print("{0} 是奇數(shù)".format(num))

----------------------------------------------------
10 是偶數(shù)

方法二

優(yōu)化方法一

'{} 是偶數(shù)'.format(num) if num % 2 == 0 else "{} 是奇數(shù)".format(num)

----------------------------------------------------
Out[32]: '10 是偶數(shù)'

方法三(推薦)

使用&位運算符,運算速度更快。

num = 10
if (num & 1) == 0:  # 注意這里的 & 1
   print("{0} 是偶數(shù)".format(num))
else:
   print("{0} 是奇數(shù)".format(num))
   
----------------------------------------------------
10 是偶數(shù)

'''優(yōu)化代碼'''
'{} 是偶數(shù)'.format(num) if num & 1== 0 else "{} 是奇數(shù)".format(num)

----------------------------------------------------
Out[35]: '10 是偶數(shù)'

原理
&是按位與運算符, 假如n=10轉換二進制為0000 1010,1的二進制為0000 0001

   10 = 0000 0100
&   1 = 0000 0001
------------------
        0000 0000

  11 = 0000 1011 (不整除 2)                 28 = 0001 1100 (整除 2)
&  1 = 0000 0001                         &  1 = 0000 0001
----------------                         ----------------
       0000 0001                                0000 0000

意思就是把n轉換成二進制,然后看n二進制最后一位,如果最后一位為1的話,結果就是1,如果最后一位是0的話,那就是0。 & 相當于AND。
因為2的倍數(shù)的二進制最后一位都是0,所以n&1表達式跟n%2結果是一樣的

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容