Python中的Inplace与标准运算符

Python中的就地运算符

就地运算是直接更改给定线性代数或向量或度量的内容而无需复制的运算。现在,有助于执行这种操作的运算符称为就地运算符。

让我们用一个简单的例子来理解它-

a=9
a += 2
print(a)

输出

11

在+ =并列输入运算符上方。首先,将具有该值的加2更新为先前的值。

以上原则也适用于其他运算符。常见的运算符有-

  • + =

  • -=

  • * =

  • / =

  • %=

以上原则适用于除数字以外的其他类型,例如-

language = "Python"
language +="3"
print(language)

输出结果

Python3

上面x + = y的示例等效于x = operator.iadd(x,y)

有多个用于就地操作的运算符。

我加()

此功能用于分配当前值并添加它们。该运算符执行x + = y运算。

x =operator.iadd(9,18)
print("Result after adding: ", end="")
print(x)

结果

Result after adding: 27

isub()

此功能用于分配当前值并减去当前值。Isub()函数执行x- = y操作。

x =operator.isub(9,18)
print("Result after subtraction: ", end="")
print(x)

结果

Result after subtraction: -9

imul()

此功能用于分配当前值并将其相乘。该运算符执行x * = y运算。

x =operator.imul(9,18)
print("Result after multiplying: ", end="")
print(x)

结果

Result after multiplying: 162

itruediv()

此功能用于分配当前值并将其除。该运算符执行x / = y操作。

x =operator.itruediv(9,18)
print("Result after dividing: ", end="")
print(x)

结果

Result after dividing: 0.5

imod()

此功能用于分配当前值并将其除。该运算符执行x%= y操作。

x =operator.imod(9,18)
print("Result after moduls: ", end="")
print(x)

结果

Result after moduls: 9

iconcat()

此函数用于连接两个字符串。

x = "Tutorials"
y = "Point"

str1 = operator.iconcat(x,y)
print(" After concatenation : ", end="")
print(str1)

结果

After concatenation : nhooo

ipow()

此函数等效于x ** = y。

x =operator.ipow(2,6)
print("Result after exponent: ", end="")
print(x)

结果

Result after exponent: 64

标准运算符

运算符是可以操纵操作数值的构造。

例如,在表达式-9 + 18 = 27中,此处9和18是操作数,而+称为运算符。

运算符类型

Python语言支持以下类型的运算符-

  • 算术运算符:(例如:+,-,*,/,%,**,//)

  • 比较运算符:(例如:“ ==”,“!=”,“ <>”,“>”,“ <”,“> =”,“ <=”)

  • 赋值运算符:(例如:“ =”,“ + =”,“-=”,“ * =”,“ / =”,“%=”,“ ** =”,“ // =”)

  • 逻辑运算符:(例如:“逻辑与”,“逻辑或”,“逻辑非”)

  • 按位运算符:(例如:“ |”,“&”,“ ^”,“〜”,“ <<”,“ >>”)

  • 成员运算符:(例如:in,not in)

  • 身份运算符:(例如:is,不是)

将运算符映射到函数

下表显示了抽象操作如何与Python语法中的运算符和运算符模块中的函数相对应。

运作方式
语法
功能
加成
x + y
加(x,y)
级联
序列1 +序列2
Concat(seq1,seq2)
遏制测试
顺序中的对象
包含(seq,obj)

x / y
Truediv(x,y)

x // y
Floordiv(x,y)
按位与
x&y
And_(x,y)
按位异或
X ^ÿ
Xor(x,y)
按位反转
〜x
反转(x)
按位或
x | y
或_(x,y)
求幂
x ** y
战俘(x,y)
身分识别
x是y
is_(x,y)
身分识别
x不是y
is_not(x,y)
索引分配
obj [k] = v
setitem(obj,k,v)
索引删除
删除obj [k]
delitem(obj,k)
索引编制
对象[k]
Getitem(obj,k)
左移
a << b
左移(a,b)
模数
a%b
Mod(a,b)
乘法
x * y
mul(x * y)
矩阵乘法
x @ b
Matmul(x,y)
求反(算术)
-一种
负数(a)
否定(逻辑)
不是
不是_(a)

+一个
pos(a)
右移
a >> b
Rshift(a,b)
切片分配
Seq [i:j] =值
Setitem(seq,slice(i,j),values)
切片删除
Del seq [i:j]
Delitem(seq,slice(i,j))
切片
序列[i:j]
Getitem(seq,slice(I,j))
字符串格式
S%物体
Mod(s,obj)
减法
b
分(a,b)
真相测试
对象
真相(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)