python學習日記(1) 運算子

2021-10-19 18:36:12 字數 3093 閱讀 2952

1. 算術運算子

a = 5

b = -5

c = 2

print(a//c, b//c)

2 -3
python3: python3中的除法(/)返回浮點型

a = 5

b = 3

print(a/b)

1.6666666666666667
python2:  python2中的除法返回型別與除數和被除數型別一致

a = 5

b = 5.0

c = 3

print a/c, b/c

1 1.66666666667
原理:x%y等於x-n*y對於某個整數 n ,使得結果具有與 x 相同的符號且小於abs(y)

print(8 % 7)

print(-8 % 7)

print(8 % -7)

print(-8 % -7)

16-6

-1

2. 比較運算子

a = 5

b = 5

print(a == b, a is b)

a = [1, 2]

b = [1, 2]

print(a == b, a is b)

true true

true false

== 判斷的是兩個物件的內容是否相同

is 判斷的是兩個物件的記憶體位址是否相同,即兩個變數指向的是同乙個物件

使用函式id(object)檢視物件的位址

a = 5

b = 5

print(a == b, a is b)

print(id(a), id(b))

a = [1, 2]

b = [1, 2]

print(a == b, a is b)

print(id(a), id(b))

true true

140716394127888 140716394127888

true false

3039645684104 3039645684616

3. 位運算子

a = 8, b = -8, c = 5, d = -5

轉換為二進位制

a = 00001000

b = 11111000 (負數的二進位制為其絕對值的補碼,補碼=~原碼 + 1)

c = 00000101

d = 11111011

a = 8

b = -8

c = 5

d = -5

print(a&b, a&c, a&d, b&c, b&d, c&d)

8 0 8 0 -8 1
使用場景

1). 判斷乙個數的奇偶性

原理:任意乙個奇數同1相與都等於1,任意乙個偶數同1相與都等於0

def isoddnum(x):

return true if (x & 1) else false

2). 計算乙個數的二進位制中有多少個1

原理:x&(x-1)結果是將x最低位的1置為0

x = 00001100

x - 1 = 00001011

x&(x-1) = 00001000

def count1nums(x):

count = 0

while x:

x = x & (x-1)

count = count + 1

return count

a = 8

b = -8

c = 5

d = -5

print(a^b, a^c, a^d, b^c, b^d, c^d)

-16 13 -13 -3 3 -2
使用場景

1). 查詢列表中獨一無二的數

乙個列表中有且僅有乙個數是唯一的,其餘數都出現2次,求該唯一數

原理:任意數與自身異或運算,結果為0;任意數與0異或,結果為自身;位運算滿**換結合律

例如:[1,2,3,2,1]     1^2^3^2^1 = (1^1)^(2^2)^3 = 0^0^3 = 3

from functools import reduce

def singlenumber(nums) -> int:

return reduce(lambda x, y: x ^ y, nums)

4. 運算子優先順序

運算子描述** 指數

(最高優先順序)

~ 、+、 -

按位翻轉

, 一元加號和減號

(最後兩個的方法名為

+@ 和

-@)

*、 / 、% 、//

乘,除,求餘數和取整除

+ 、-

加法減法

>> 、<<

右移,左移運算子 &

位'and'

^、 |

位運算子

<= 、< 、> 、>=

比較運算子

== 、!=

等於運算子

= 、%=、 /= 、//=、 -= 、+= 、*= 、**=

賦值運算子

is 、is not

身份運算子

in 、not in

成員運算子

not 、and 、or

邏輯運算子

[-2**31, 2**31 - 1] = [-2<<30, (2<<30) - 1]

python3學習日記 運算子

python語言支援以下型別的運算子 下面主要講一下成員運算子 身份運算子 邏輯運算子以及運算子優先順序運算子描述 in如果在指定的序列中找到值返回 true,否則返回 false。not in 如果在指定的序列中沒有找到值返回 true,否則返回 false。fruit orange banana...

C 學習日記 運算子過載

c 運算子過載 賦予運算子另一種作用,實現自定義型別的運算 如物件 物件變成int int一樣 c 運算子過載內容 1.友元過載 友元 宣告 友元關係是單向的,不可傳遞 2.輸入輸出流過載 class cstring else cstring cstring const cstring src cs...

python 運算子 Python運算子

python語言支援以下型別的運算子 算術運算子 比較 關係 運算子 賦值運算子 邏輯運算子 位運算子 成員運算子 身份運算子 運算子優先順序 1 算術運算子 加號 減號 乘 除 取餘 乘方 整除 1 其中除號 要注意 在python2中,用作整除。解決方法有三 1 兩個相除的數中有乙個為實數。2 ...