Python

【Python】インクリメント・デクリメントをする方法

この記事では、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

for文の違い

C言語のfor文では、以下のようにインクリメント・デクリメントを使ってループ処理していました。

int main() 
{
  for(int i = 0; i < 5; i++)
  {
    printf("%d\n", i);
  }
}

実行結果

0
1
2
3
4

上記のコードをPythonで記述すると以下のようになります。

for i in range(5):
    print(i)

実行結果

0
1
2
3
4

このようにPythonではインクリメント・デクリメントを使わずにループ処理を実装することができます。

【Python】for文の使い方【ループ処理】この記事では、Pythonのfor文でループ処理する方法を解説します!Pythonのfor文はC言語とは違いイテラブルオブジェクトを使っ...

同様にデクリメントも可能です。

for i in range(5, 0, -1):
    print(i)

実行結果

5
4
3
2
1
【Python】range関数の使い方【数列】この記事では、Pythonのrange関数の使い方について解説します。 range関数を使うことで任意の範囲の連続した数列を生成す...

クラスの特殊メソッドを使う

単項演算子用の特殊メソッドを定義することでインクリメント・デクリメントを実装できます。

class Num:
    def __init__(self, num):
        self.num = num
    
    # 特殊メソッド(+instance)
    def __pos__(self):
        print('インクリメント')
        self.num += 1
        return self.num

    # 特殊メソッド(-instance)
    def __neg__(self):
        print('デクリメント')
        self.num -= 1
        return self.num

# インスタンス化
zero = Num(0)

# インクリメント
+zero
print(f'zero.num = {zero.num}')

# デクリメント
-zero
print(f'zero.num = {zero.num}')

実行結果

インクリメント
zero.num = 1
デクリメント
zero.num = 0
【おすすめ】Python参考書