この記事では、Pythonでインクリメント・デクリメントする方法を解説します。
インクリメントとは数値を1増やすことで、デクリメントとは数値を1減らすことを言います。これらの演算はなにかしらをカウントする際によく使用されます。
多くのプログラミング言語にはインクリメントやデクリメントを計算するための共通の演算子(++、--)が用意されていますがPythonには実装されていません。
なのでPythonでは、代入演算子を使ってインクリメントやデクリメントを演算します。
インクリメントするには、代入演算子の+=
を使うことで1行で表現することができます。
inc = 0
inc += 1
print(inc)
inc += 1
print(inc)
実行結果
1
2
デクリメントするには、代入演算子-=
を使います。
dec = 0
dec -= 1
print(dec)
dec -= 1
print(dec)
実行結果
-1
-2
クラス変数に演算結果を保持させたクラスを定義してインスタンスのメソッドをそれぞれ変数に代入することで同じカウント変数を共有する関数のように扱うことができます。
class counter:
count: int = 0
# インクリメント
def increment(self) -> int:
counter.count += 1
return counter.count
# デクリメント
def decrement(self) -> int:
counter.count -= 1
return counter.count
# インスタンス化
count = counter()
inc, dec = count.increment, count.decrement
val = inc()
print(val) # 1
val = dec()
print(val) # 0
クロージャを使うことでその関数を呼び出すたびに値をインクリメント・デクリメントさせるカウンターを作成することができます。
インクリメント
def inc():
count = 0
def inner_func():
nonlocal count
count += 1
return count
return inner_func
i = inc()
print(i())
print(i())
print(i())
実行結果
1
2
3
デクリメント
def dec():
count = 0
def inner_func():
nonlocal count
count -= 1
return count
return inner_func
i = dec()
print(i())
print(i())
print(i())
実行結果
-1
-2
-3
クロージャについて知りたい方は以下の記事を参照してください。
この記事では、Pythonでインクリメント・デクリメントする方法を解説しました。
Pythonにはインクリメントとデクリメント用の演算子は用意されていませんでしたが、代入演算子を使うことで簡単に同じような処理を実装することができました。
それでは今回の内容はここまでです。ではまたどこかで〜( ・∀・)ノ