判斷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結果是一樣的