Python中的就地運算子與標準運算子
Python中的就地運算子
就地操作是指直接更改給定線性代數、向量或矩陣的內容,而無需建立副本。現在,有助於執行此類操作的運算子稱為就地運算子。
讓我們用一個簡單的例子來理解它:
a=9 a += 2 print(a)
輸出
11
以上是`+=`就地運算子。首先,將2加到a的值,然後更新為之前的值。
上述原則也適用於其他運算子。常見的就地運算子包括:
- +=
- -=
- *=
- /=
- %=
上述原則也適用於數字以外的其他型別,例如:
language = "Python" language +="3" print(language)
輸出
Python3
以上`x+=y`的例子等價於`x = operator.iadd(x,y)`
有多個運算子用於就地操作。
iadd()
此函式用於賦值當前值並將其相加。此運算子執行`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 : TutorialsPoint
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,is not)
運算子與函式的對映
下表顯示了抽象操作如何對應於Python語法中的運算子符號和operator模組中的函式。
| 操作 | 語法 | 函式 |
|---|---|---|
| 加法 | x + y | add(x, y) |
| 連線 | Seq1 + seq2 | concat(seq1, seq2) |
| 包含測試 | Obj in seq | contains(seq, obj) |
| 除法 | x / y | truediv(x, y) |
| 除法 | x // y | floordiv(x, y) |
| 按位與 | x & y | and_(x, y) |
| 按位異或 | x ^ y | xor(x, y) |
| 按位取反 | ~x | invert(x) |
| 按位或 | x|y | or_(x,y) |
| 指數 | x ** y | pow(x, y) |
| 身份 | x is y | is_(x, y) |
| 身份 | x is not y | is_not(x, y) |
| 索引賦值 | 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) |
| 乘法 | x*y | mul(x*y) |
| 矩陣乘法 | x@b | matmul(x, y) |
| 否定(算術) | -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) |
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP