繰り返し処理の必須テクニック【Python】

Pythonの繰り返し処理は大変面倒です。
JavaScriptなど他の言語に慣れていると、独特のお作法が面倒で仕方ありません。
そんな方向けに、簡単に繰り返し処理のテクニックをまとめてみました。

基本形態

基本的な繰り返し処理はこちらの書き方です。
カウンタ変数を使わないという点が特徴的です。
Pythonの場合、このタイプの繰り返し処理しかありません。

プログラム

array = [1,2,3]
for item in array:
  print(item)

実行結果

1
2
3

配列を用意しない方法

ループを回すためだけに配列を用意するのは面倒です。
一般的な言語のようにfor文を書きたいですよね。
残念ながら、そのようなことはできませんが、range文を使うと少しは可読性が上がります。

プログラム

array = [1,2,3]
for i in range(3):
  print(i)

実行結果

0
1
2

補足事項

確かに3回繰り返すことに成功しましたが、カウンタ変数がおかしいですね。
始まりが[0]である点に注意が必要です。

range関数を極める

range関数は引数に指定した開始数から終了数までの
連続した数値を要素として持つ range 型の
オブジェクトを作成します。

プログラム

array = [1,2,3]
for i in range(1, 3):
  print(i)

実行結果

1
2

補足事項

また、おかしな結果になってしまいました。
開始番号はよいですが、2回しか繰り返されていません。
そうです、range関数の第二引数は繰り返し回数ではありません。

range関数を使いこなす

range関数を使う場合、第二引数はループ回数に1を加算した値を設定します。

プログラム

array = [1,2,3]
for i in range(1, 4):
  print(i)

実行結果

1
2
3

補足事項

やっと、目的とした回数ループすることができました。
なぜ、もう少し、使いやすく改良しないのか謎でしかありません。

すごいテクニック

ステップ間隔を設定することもできます。

プログラム

array = [1,2,3]
for i in range(0, 10, 3):
  print(i)

実行結果

0
3
6
9

補足事項

あまり使い道はありませんが、参考までに!

Python

Posted by @erestage