検索
連載

[解決!Python]変数の値をインクリメント/デクリメントするには解決!Python

Pythonにはインクリメントを行う++演算子やデクリメントを行う--演算子はない。累算代入文やrange関数、enumerate関数などを使い1ずつ増加/減少する値を取り扱う方法を紹介する。

PC用表示 関連情報
Share
Tweet
LINE
Hatena
「解決!Python」のインデックス

連載目次

* 本稿は2023年2月21日に公開された記事をPython 3.12.2で動作確認したものです(確認日:2024年3月1日)。


# 代入文/累算代入文
x = 100
x += 1  # インクリメント(累算代入文)
print(f'{x=}')  # x=101

x = x + 1  # インクリメント(代入文)
print(f'{x=}')  # x=102

x = x - 1  # デクリメント(代入文)
print(f'{x=}')  # x=101

x -= 1  # デクリメント(累算代入文)
print(f'{x=}')  # x=100

# 指定した範囲を1ずつインクリメント/デクリメント
result = ''
for x in range(5):
    result += f'{x} '  # xの値は0、1、2、3、4と1ずつインクリメントされる

print(result)  # 0 1 2 3 4 

result = ''
for x in range(5, 10):  # 5〜9の範囲の整数を順に得る
  result += f'{x} '

print(result)  # 5 6 7 8 9 

result = ''
for x in range(4, -1, -1):  # デクリメント
    result += f'{x} '

print(result)  # 4 3 2 1 0 

# リストの要素とインデックスが必要なとき
mylist = list(range(5))
mylist.reverse()
print(mylist)  # [4, 3, 2, 1, 0]

for idx, item in enumerate(mylist):
    print(f'{idx}: {item}')
# 出力結果:
#0: 4
#1: 3
#2: 2
#3: 1
#4: 0



Pythonには++演算子/--演算子はない

 Pythonには変数の値をインクリメントする(1つ増加させる)ための++演算子や、変数の値をデクリメントする(1つ減少させる)ための--演算子はない。そのため、「x++」や「--x」のような書き方はできない。変数の値を1つ増減させるには以下のようなやり方がある。

  • 代入文または累算代入文を使用する
  • 特定の範囲で1ずつ変化する値を使用するにはrange関数を使用する
  • リストの要素と対応するインデックスを反復するにはenumerate関数を使用する

 それぞれについて以下で簡単に見ていこう。

代入文と累算代入文

 変数xの値をインクリメントする(1つ増加させる)には「x = x + 1」という代入文か「x += 1」という累算代入文を使用できる。累算代入文は「+=」「-=」「*=」などの演算子を使用して、左辺の変数(など代入可能なもの)と右辺の式を用いた2項演算を行い(+=演算子なら2項の加算演算)、その結果を左辺の変数に代入するものだ。「x = x + 1」という代入文は、累算代入文を使うと「x += 1」のように書ける。

 以下に例を示す。

# 代入文/累算代入文
x = 100
x += 1  # インクリメント(累算代入文)
print(f'{x=}')  # x=101

x = x + 1  # インクリメント(代入文)
print(f'{x=}')  # x=102

x = x - 1  # デクリメント(代入文)
print(f'{x=}')  # x=101

x -= 1  # デクリメント(累算代入文)
print(f'{x=}')  # x=100



range関数

Copyright© Digital Advantage Corp. All Rights Reserved.

[an error occurred while processing this directive]
ページトップに戻る