python

python

python入門~for文による繰り返し処理の使い方 | 独学プログラミング

こちらの記事ではfor文を利用して繰り返し処理を行うための書き方を学んでいきます。

今までの記事では主に上から順に実行されていく形で処理が進んでいました。

また前回の記事では条件によって異なる処理を実施する書き方を紹介しています。

python入門~if文を使った条件分岐

今回は以下のように同じ処理を繰り返す処理を学んでいきたいと思います。

また新しい図形が登場した。。見方を教えて
台形の部分が繰り返し処理のスタート、台形の逆の台形が繰り返し処理の終了です

繰り返し処理の中にある処理Aを繰り返し実行していきます

なるほど、、繰り返し処理を終わるにはどうすればいい?
今回紹介するfor文では文法の中に繰り返しの回数を定義することになります。早速見ていきましょう

for文の基本

繰り返し処理をfor文に置き換え

まずは同じprint処理を3回続けて実施する処理を書いてみます。

# それぞれの変数に名前を入れる
name = ["田中", "佐藤", "小林"]

# printで表示
print(name[0])
print(name[1])
print(name[2])
以前の記事の例文と同じだね。ここは大丈夫!
これをfor文で書くと以下のコードになります
# それぞれの変数に名前を入れる
name = ["田中", "佐藤", "小林"]

# printで表示
for temp in name:
    print(temp)

5行目のコードで今回紹介するforが登場しています。文法としては以下の書き方になります。

for [for内で使う変数] in [繰り返し用の配列]

内部的な処理は「繰り返し用の配列」の先頭から1つずつ要素を取得して「for内で使う変数」に渡します。

最初の繰り返し処理の6行目のtempには"田中"が入ってくるので、print処理で表示、続けて"佐藤"、"小林"とtemp変数の中身が変わっていきます。

今回の例では"小林"まで進むと配列が終わりなので繰り返し処理が終了されます。

実行結果もprintを並べる時と同じ!
今回はprint処理を3行だったので、恩恵が分かりづらいですが、100・・1000となってくると書ききれない量になってきます

決められた回数分繰り返すfor文

例えば、ある処理を5回繰り返したい場合はどうやって書くのがよいのかな??こんな感じ?
nums = [1, 2, 3, 4, 5]

for temp in nums:
    print("Hello")
そうですね、上記の処理でも出来ていますが、例えば1000回繰り返すのは大変ですよね。。

こういった場合は以下のような書き方が出来ます

for temp in range(5):
    print("Hello")
すっきり!range関数を一緒に使うんだね
この書き方は公式マニュアルにもあり、良く使われる処理です

ちなみにrange関数は開始値を指定することも出来ます。

for temp in range(1, 5):
    # 実行結果:1 2 3 4
    print(temp)

上記の場合は、1から4までがprintで表示され、5は出力されません。

range関数のマニュアルを確認して仕様を押さえておきましょう。

for文を途中で抜けたい場合

今回紹介する繰り返し処理と条件分岐の処理であるif文を組み合わせることで以下のような処理を書くことができます。

for文の処理の中でif文を記載し、条件に合致したらfor文を抜ける「break」を実行することで繰り返し処理から抜けることができます。

for temp in range(10):
    if temp == 5:
        break
    print(temp)

# 実行結果:0 1 2 3 4

5の繰り返し処理の中身でprint処理手前のif文で条件に合致したためbreakが実行される、処理が終了するので、5以降は表示されません。

入れ子になる場合のインデントには注意しましょう!

この例ではbreak文はifの中、print文はfor文の中(ifの外)ですね

インデントのおかげで、どの処理がif文の処理なのか分かりやすいね!

for文の一部の処理をスキップしたい場合

以下のフロー図のようにif文の条件に合致した場合、処理Bを行わずに次の繰り返し処理に進みたいケースにも対応できます。

先ほど抜ける場合にはbreak文を使いましたが、今回はcontinue文を使って処理を行います。

for temp in range(10):
    if temp == 5:
        continue
    print(temp)

# 実行結果:0 1 2 3 4 6 7 8 9

上記の通り、5のprint処理だけがスキップして最後の繰り返しまで処理されます。

少しづつフロー図を理解できるようになってきたかも!
フロー図は自分の頭の中を整理したり、他の人と作業する際に認識を揃えたりと作って損はありません

python入門~for文による繰り返し処理の使い方

今回の記事ではfor文を使った繰り返し処理の方法について紹介しました。

ifと合わせて制御処理には欠かせない文法になるため確実にマスターしておくようにしましょう。

合わせて紹介したif文と組み合わせた処理のスキップや繰り返し処理から抜ける方法もよく使われる書き方です。

続けての記事ではもう1つの繰り返し処理の構文であるwhile文について説明します。

補足~本ページQ&A

for文の入れ子処理について

if文と同じようにfor文でも入れ子で書くことってできる?
出来ますが、複雑になるのでおススメしません
どうしても必要な場合のみ利用しましょう

代表的な例として掛け算の九九表を表示するプログラムです。for文の入れ子処理のみで作成することができます。

for i in range(1, 10):
    print("-----" + str(i) + "の段-----")
    for j in range(1, 10):
        print(i * j)

for文が最後まで進んだ時だけ特定の処理を実施したい

pythonにはfor文に対してelseによる処理を行うことが出来ます。詳細は公式マニュアル参考にしてください。
あまり他言語では見かけない処理なので、個人的にはループ後にfor文で作成された変数などから判定する形が望ましいです

-python
-

Copyright© ビギナープログラミング , 2020 All Rights Reserved.