レッスン3:制御フロー - 条件分岐とループ
Contents
レッスン3:制御フロー - 条件分岐とループ¶
このレッスンでは、Pythonの制御フローについて学びます。制御フローは、プログラムの実行フローを制御するための構造です。これには、条件分岐(if、elif、else)とループ(for、while)が含まれます。
目次¶
条件分岐
ループ
演習問題
1. 条件分岐¶
Pythonのif、elif、elseキーワードを使用して、条件に基づいて異なるコードを実行することができます。これを条件分岐と呼びます。
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文は、その後の条件が真である場合に、インデントされたコードブロックを実行します。elifとelseはオプションで、それぞれ追加の条件やデフォルトでの動作を提供します。
この例では、まずifでxの値が0より大きいかを判定しています。もし0以下だった場合は、elifに進みxが0未満であるかを判定します。最後に、そのどちらでもない場合にはelseに書かれた処理が実行されます。
Pythonではインデントによってコードブロック(コードのまとまり)を表現します。printと書かれた行がifやelifよりも一段右にあることに注意してください。これにより、Pythonインタプリタは各print文がifやelifの下であると解釈します。
2. ループ¶
Pythonのforとwhileループを使用すると、コードを繰り返し実行することができます。これをループと呼びます。
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から10までの数値を出力する
forループを書いてみましょう。数値が0になるまで数値を半分にする
whileループを書いてみましょう。与えられた数値が偶数であるか奇数であるかを判断するコードを書いてみましょう(ヒント:余りは
%演算子で求められます)
# 演習問題1
# 以下にコードを書いてみましょう
# 演習問題2
# 以下にコードを書いてみましょう
# 演習問題3
# 以下にコードを書いてみましょう
# 演習問題4
# 以下にコードを書いてみましょう