【Python④】条件分岐と繰り返しの基本|if文とfor文
ここまでで、変数・型・演算、そしてリストと辞書の基本を整理しました。次に必要になるのは、条件によって処理を分けること、そして同じ処理を繰り返すことです。そこで今回は、Pythonの基礎として重要な if 文と for 文を整理します。
データサイエンスでは、条件に応じてデータを分類したり、複数の値に同じ処理を適用したりする場面が多くあります。そのため、if 文と for 文は早い段階で押さえておく必要があります。
この記事で整理すること
この記事で整理する内容は4つあります。1つ目は、if 文とは何かということです。2つ目は、for 文とは何かということです。3つ目は、条件分岐と繰り返しがどのように違うかということです。4つ目は、それぞれがデータサイエンスの中でどのように役立つかということです。
目的は、処理の流れを自分で読めるようになることです。ここを押さえると、この先のデータ処理や関数の理解にもつながります。
if文とは何か
if 文は、条件に応じて処理を分けるための仕組みです。ある条件が成り立つときだけ処理を実行したい場合に使います。
たとえば、点数が60点以上なら「合格」と表示する処理は、次のように書けます。
score = 75 if score >= 60: print("合格")
このコードでは、点数が60以上なので「合格」が表示されます。つまり if 文は、「条件が真のときにこの処理を行う」という形を作るものです。
if文の基本的な形
if 文の基本は、条件を書く行のあとにコロンを置き、その下に実行したい処理を書く形です。ここで重要なのが、インデント です。
score = 75 if score >= 60: print("合格") print("次に進みます")
このように、条件の下で実行する処理は、字下げして書きます。Pythonでは、このインデントによって「どこまでが同じまとまりか」を表します。数学のように記号で区切るのではなく、字下げそのもので構造を示す点が特徴です。
条件に当てはまらないときの処理
条件に当てはまるときだけでなく、当てはまらないときの処理も書きたい場合があります。そのときは else を使います。
score = 50 if score >= 60: print("合格") else: print("不合格")
このコードでは、点数が60未満なので「不合格」が表示されます。if と else を組み合わせると、2つの場合に処理を分けられます。
さらに、条件を増やしたいときは elif を使います。
score = 75 if score >= 80: print("とても良い") elif score >= 60: print("合格") else: print("不合格")
このように書くと、複数の条件に応じて処理を分けられます。
for文とは何か
for 文は、同じ処理を繰り返すための仕組みです。リストの中の値を順番に取り出しながら、同じ処理を何度も行いたいときによく使います。
たとえば、リストに入っている点数を1つずつ表示する処理は、次のように書けます。
scores = [70, 82, 91, 65] for score in scores: print(score)
このコードでは、リストの中の値が順番に取り出され、そのたびに表示されます。つまり for 文は、「複数の値に対して同じ処理を順に行う」ための仕組みです。
for文の基本的な形
for 文では、「どの値を」「どこから取り出すか」を書きます。基本の形は、for 変数 in 対象: です。
names = ["Aki", "Mina", "Taro"] for name in names: print(name)
この場合、リストの中の名前が1つずつ取り出され、そのたびに表示されます。ここでも if 文と同じく、処理のまとまりはインデントで表します。
for 文では、繰り返しのたびに変数へ新しい値が入ります。この流れを追えるようになることが重要です。
rangeを使った繰り返し
繰り返す回数が決まっているときは、range() を使うこともできます。
for i in range(5): print(i)
このコードでは、0 から 4 までの数が順番に表示されます。range(5) は、5回繰り返すための仕組みとしてよく使われます。
ここでも、0 から始まるという点はPythonらしい特徴です。リストのインデックスと同じ感覚で理解しておくと整理しやすくなります。
if文とfor文の違い
if 文と for 文は、どちらも処理の流れを作るためのものですが、役割は異なります。
if文は条件によって処理を分けるfor文は同じ処理を繰り返す
たとえば、点数が合格かどうかを判定するなら if 文が必要です。一方で、複数の点数を順番に確認するなら for 文が必要です。さらに実際には、この2つを組み合わせて使うことも多くあります。
scores = [70, 82, 55, 65] for score in scores: if score >= 60: print("合格") else: print("不合格")
このコードでは、リストの各要素に対して、合格か不合格かを判定しています。つまり、for 文で繰り返し、if 文で条件分岐しています。
データサイエンスでどう役立つか
データサイエンスでは、条件分岐と繰り返しは基本的な処理として何度も出てきます。たとえば、ある条件に合うデータだけを取り出したり、複数の値に対して同じ計算を適用したりするときに使います。
また、リストや辞書、さらにこの先学ぶ pandas のデータ処理でも、「順番に処理する」「条件によって分ける」という考え方は土台になります。今の段階では複雑な処理を書く必要はありませんが、流れを読めるようにしておくことが重要です。
よくある混乱
ここでは、最初に混乱しやすい点を整理しておきます。
- コロンを書き忘れる
- インデントがそろっていない
if文とfor文の役割が混ざるrange()の数え方が直感とずれる
特にPythonでは、インデントが文法の一部です。そのため、字下げがずれるとエラーになったり、意図しない処理になったりします。また、if 文は条件分岐、for 文は繰り返し、という役割の違いも明確にしておく必要があります。
今の段階で押さえるべきこと
現時点で必要なのは、複雑な条件式や高度なループ処理を覚えることではありません。まずは、if 文で条件によって処理を分けられること、for 文で同じ処理を繰り返せること、この2点を確実に押さえることが重要です。
加えて、コードを読んだときに「今どの条件を見ているのか」「何を順番に処理しているのか」を追えるようにしておく必要があります。ここを曖昧にしないことが、この先の関数やデータ処理の理解にもつながります。
次に学ぶこと
ここまでで、条件分岐と繰り返しの基本として、if 文と for 文を整理しました。次は、処理に名前を付けてまとめる仕組みとして、関数を学びます。
if 文や for 文を使ってコードが長くなってくると、同じ処理をまとめたくなります。そのときに必要になるのが関数です。その意味でも、次の記事は今回の内容と自然につながっています。
まとめ
if 文は、条件によって処理を分けるための仕組みです。for 文は、同じ処理を繰り返すための仕組みです。
この2つは、Pythonの処理の流れを作る基本になります。特に、インデントで処理のまとまりを表すこと、条件分岐と繰り返しの役割を区別することは、早い段階で明確にしておく必要があります。ここを押さえておけば、この先の関数やデータ処理にも入りやすくなります。