Pythonのインプレース演算子と標準演算子
Pythonのインプレース演算子
インプレース操作は、コピーを作成せずに、特定の線形代数、ベクトル、またはメトリックの内容を直接変更する操作です。現在、この種の操作を行うのに役立つ演算子は、インプレース演算子と呼ばれています。
簡単な例で理解しましょう-
a=9 a += 2 print(a)
出力
11
+=タイ入力演算子の上。ここでは、最初に、その値に2を加算すると、前の値が更新されます。
上記の原則は他のオペレーターにも当てはまります。一般的なインプレース演算子は-
- + =
- -=
- * =
- / =
- %=
上記の原則は、数字以外の他のタイプにも適用されます。たとえば、-
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()
この関数は、2つの文字列を連結するために使用されます。
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言語は、次のタイプの演算子をサポートしています-
-
算術演算子 :(例:+、-、*、/、%、**、//)
-
比較演算子 :(例:“ ==”、“!=”、“ <>”、“>”、“ <”、“> =”、“ <=”)
-
代入演算子 :(例:“ =”、“ + =”、“-=”、“ * =”、“ / =”、“%=”、“ ** =”、“ // =”)
-
論理演算子 :(例:「論理AND」、「論理OR」、「論理NOT」)
- ビット演算子: (例:「|」、「&」、「^」、「〜」、「<<」、「>>」)
-
メンバーシップオペレーター :(例:in、inではない)
-
ID演算子 :(例:is、is not)
演算子の関数へのマッピング
以下は、抽象演算がPython構文の演算子シンボルと演算子モジュールの関数にどのように対応するかを示す表です。
操作 | 構文 | 関数 |
---|---|---|
追加 | 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はyです | is_(x、y) |
アイデンティティ | xはyではありません | is_not(x、y) |
インデックス付き代入 | obj [k] =v | setitem(obj、k、v) |
インデックス付き削除 | del obj [k] | delitem(obj、k) |
インデックス作成 | Obj [k] | Getitem(obj、k) |
左シフト | a < | Lshift(a、b) |
Modulo | a%b | Mod(a、b) |
乗算 | x * y | mul(x * y) |
行列の乗算 | x @ b | Matmul(x、y) |
否定(算術) | -a | Neg(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 | true(obj) |
注文 | a | 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) |
-
関数としてのPython標準演算子
プログラミングでは、演算子は通常、加算、減算、比較などの特定の操作を実行するために事前定義された記号(キー)です。Pythonには、さまざまな方法で分割された多数の組み込み操作があります。算術、比較、ビット単位、メンバーシップなどのカテゴリ Pythonライブラリの演算子モジュールは、組み込みの演算子に対応する関数で構成されています。関数の名前は、対応する演算子のタイプに類似しています。たとえば、演算子モジュールのadd()関数は+演算子に対応します。 PythonのObjectクラスには、演算子シンボルに対応するdunder(名前の前後に二重アンダースコア)メソッドがあります。これらのd
-
Pythonでの比較演算子の連鎖
1つのステートメントで複数の条件チェックを使用する必要がある場合があります。この種のチェックには、x