Python3 operator

本页内容
上一节: Python3_pip 下一节: Python_math_模块

Python3 operator 模块

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 &lt 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 = "xiaoBai"

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: xiaoBai
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)
按位或 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)
上一节: Python3_pip 下一节: Python_math_模块
此页面最后编辑于2022年8月17日 (星期三) 21:50。