程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Python3 operator 模塊

編輯:Python

Python2.x 版本中,使用 cmp() 函數來比較兩個列表、數字或字符串等的大小關系。

Python 3.X 的版本中已經沒有 cmp() 函數,如果你需要實現比較功能,需要引入 operator 模塊,適合任何對象,包含的方法有:

operator 模塊包含的方法

operator.lt(a, b)
operator.le(a, b)
operator.eq(a, b)
operator.ne(a, b)
operator.ge(a, b)
operator.gt(a, b)
operator.__lt__(a, b)
operator.__le__(a, b)
operator.__eq__(a, b)
operator.__ne__(a, b)
operator.__ge__(a, b)
operator.__gt__(a, b)

operator.lt(a, b) 與 a < b 相同, operator.le(a, b) 與 a <= b 相同,operator.eq(a, b) 與 a == b 相同,operator.ne(a, b) 與 a != b 相同,operator.gt(a, b) 與 a > b 相同,operator.ge(a, b) 與 a >= b 相同。

實例

# 導入 operator 模塊
import operator
 
# 數字
x = 10
y = 20
print("x:",x, ", y:",y)
print("operator.lt(x,y): ", operator.lt(x,y))
print("operator.gt(y,x): ", operator.gt(y,x))
print("operator.eq(x,x): ", operator.eq(x,x))
print("operator.ne(y,y): ", operator.ne(y,y))
print("operator.le(x,y): ", operator.le(x,y))
print("operator.ge(y,x): ", operator.ge(y,x))
print()
# 字符串
x = "Google"
y = "Runoob"
print("x:",x, ", y:",y)
print("operator.lt(x,y): ", operator.lt(x,y))
print("operator.gt(y,x): ", operator.gt(y,x))
print("operator.eq(x,x): ", operator.eq(x,x))
print("operator.ne(y,y): ", operator.ne(y,y))
print("operator.le(x,y): ", operator.le(x,y))
print("operator.ge(y,x): ", operator.ge(y,x))
print()
# 查看返回值
print("type((operator.lt(x,y)): ", type(operator.lt(x,y)))

以上代碼輸出結果為:

x: 10 , y: 20
operator.lt(x,y): True
operator.gt(y,x): True
operator.eq(x,x): True
operator.ne(y,y): False
operator.le(x,y): True
operator.ge(y,x): True
x: Google , y: Runoob
operator.lt(x,y): True
operator.gt(y,x): True
operator.eq(x,x): True
operator.ne(y,y): False
operator.le(x,y): True
operator.ge(y,x): True

比較兩個列表:

實例

# 導入 operator 模塊
import operator
a = [1, 2]
b = [2, 3]
c = [2, 3]
print("operator.eq(a,b): ", operator.eq(a,b))
print("operator.eq(c,b): ", operator.eq(c,b))

以上代碼輸出結果為:

operator.eq(a,b): False
operator.eq(c,b): True

運算符函數

operator 模塊提供了一套與 Python 的內置運算符對應的高效率函數。例如,operator.add(x, y) 與表達式 x+y 相同。

函數包含的種類有:對象的比較運算、邏輯運算、數學運算以及序列運算。

對象比較函數適用於所有的對象,函數名根據它們對應的比較運算符命名。

許多函數名與特殊方法名相同,只是沒有雙下劃線。為了向後兼容性,也保留了許多包含雙下劃線的函數,為了表述清楚,建議使用沒有雙下劃線的函數。

實例

# Python 實例
# add(), sub(), mul()
 
# 導入  operator 模塊
import operator
 
# 初始化變量
a = 4
 
b = 3
 
# 使用 add() 讓兩個值相加
print ("add() 運算結果 :",end="");
print (operator.add(a, b))
 
# 使用 sub() 讓兩個值相減
print ("sub() 運算結果 :",end="");
print (operator.sub(a, b))
 
# 使用 mul() 讓兩個值相乘
print ("mul() 運算結果 :",end="");
print (operator.mul(a, b))

以上代碼輸出結果為:

add() 運算結果 :7
sub() 運算結果 :1
mul() 運算結果 :12

運算

語法

函數

加法

a + b

add(a, b)

字符串拼接

seq1 + seq2

concat(seq1, seq2)

包含測試

obj in seq

contains(seq, obj)

除法

a / b

truediv(a, b)

除法

a // b

floordiv(a, b)

按位與

a & b

and_(a, b)

按位異或

a ^ b

xor(a, b)

按位取反

~ a

invert(a)

按位或

a | b

or_(a, b)

取冪

a ** b

pow(a, b)

標識

a is b

is_(a, b)

標識

a is not b

is_not(a, b)

索引賦值

obj[k] = v

setitem(obj, k, v)

索引刪除

del obj[k]

delitem(obj, k)

索引取值

obj[k]

getitem(obj, k)

左移

a << b

lshift(a, b)

取模

a % b

mod(a, b)

乘法

a * b

mul(a, b)

矩陣乘法

a @ b

matmul(a, b)

取反(算術)

- a

neg(a)

取反(邏輯)

not a

not_(a)

正數

+ a

pos(a)

右移

a >> b

rshift(a, b)

切片賦值

seq[i:j] = values

setitem(seq, slice(i, j), values)

切片刪除

del seq[i:j]

delitem(seq, slice(i, j))

切片取值

seq[i:j]

getitem(seq, slice(i, j))

字符串格式化

s % obj

mod(s, obj)

減法

a - b

sub(a, b)

真值測試

obj

truth(obj)

比較

a < b

lt(a, b)

比較

a <= b

le(a, b)

相等

a == b

eq(a, b)

不等

a != b

ne(a, b)

比較

a >= b

ge(a, b)

比較

a > b

gt(a, b)


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved