[解決!Python]変数の値をインクリメント/デクリメントするには:解決!Python
Pythonにはインクリメントを行う++演算子やデクリメントを行う--演算子はない。累算代入文やrange関数、enumerate関数などを使い1ずつ増加/減少する値を取り扱う方法を紹介する。
* 本稿は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.