レッスン3:制御フロー - 条件分岐とループ

レッスン3:制御フロー - 条件分岐とループ

このレッスンでは、Pythonの制御フローについて学びます。制御フローは、プログラムの実行フローを制御するための構造です。これには、条件分岐(ifelifelse)とループ(forwhile)が含まれます。

目次

  1. 条件分岐

  2. ループ

  3. 演習問題

1. 条件分岐

Pythonのifelifelseキーワードを使用して、条件に基づいて異なるコードを実行することができます。これを条件分岐と呼びます。

x = 10

if x > 0:
    print('x is positive')
elif x < 0:
    print('x is negative')
else:
    print('x is zero')
x is positive

上記のコードでは、xの値に基づいて異なるメッセージを出力しています。if文は、その後の条件が真である場合に、インデントされたコードブロックを実行します。elifelseはオプションで、それぞれ追加の条件やデフォルトでの動作を提供します。

この例では、まずifxの値が0より大きいかを判定しています。もし0以下だった場合は、elifに進みxが0未満であるかを判定します。最後に、そのどちらでもない場合にはelseに書かれた処理が実行されます。

Pythonではインデントによってコードブロック(コードのまとまり)を表現します。printと書かれた行がifelifよりも一段右にあることに注意してください。これにより、Pythonインタプリタは各print文がifelifの下であると解釈します。

2. ループ

Pythonのforwhileループを使用すると、コードを繰り返し実行することができます。これをループと呼びます。

2.1 forループ

forループは、指定した回数だけ繰り返し処理を行います。以下のコードでは、range(5)という部分がその指定を行っています。

# forループ
for i in range(5):
    print(i)
0
1
2
3
4

range(5)は、0から4までの整数(5つの数値)を生成します。したがって、このforループは5回繰り返されます。 iはループの各反復でrange(5)から次の値を取得します。つまり、最初の反復ではiは0、次の反復ではiは1、というようになります。 print(i)は、その時点でのiの値を出力します。したがって、このコードは0から4までの数を順に出力します。

2.2 whileループ

whileループは、指定した条件が真(True)である限り、処理を繰り返します。以下のコードでは、x < 5という部分がその条件を指定しています。

# whileループ
x = 0
while x < 5:
    print(x)
    x += 1
0
1
2
3
4

最初に、xに0が代入されます。その後、x < 5という条件が真である限り(つまり、xが5未満である限り)、ループ内のコードが実行されます。 ループ内のprint(x)は、その時点でのxの値を出力します。 x += 1は、xの値に1を加える(xの値を1増やす)操作です。これにより、xの値は次第に増えていき、いずれx < 5という条件が偽(False)になります。その時点で、whileループは終了します。 したがって、このコードも0から4までの数を順に出力します。

3. 演習問題

以下の演習問題を解いてみましょう。

  1. 与えられた数値が正、負、またはゼロであるかを判断するコードを書いてみましょう。

  2. 1から10までの数値を出力するforループを書いてみましょう。

  3. 数値が0になるまで数値を半分にするwhileループを書いてみましょう。

  4. 与えられた数値が偶数であるか奇数であるかを判断するコードを書いてみましょう(ヒント:余りは%演算子で求められます)

# 演習問題1
# 以下にコードを書いてみましょう
# 演習問題2
# 以下にコードを書いてみましょう
# 演習問題3
# 以下にコードを書いてみましょう
# 演習問題4
# 以下にコードを書いてみましょう