Python フロー制御

Python

if文ー条件分岐

条件に応じて処理を変えるには if 文を使用します。条件式が「真=True」の時に処理したい内容と、条件が「偽=False」の時に処理したい内容を記述します。条件が「偽=False」の時の記述は省略できます。条件が「真=True」の時の記述を省略したい場合は「pass」を記述します。

基本的な記述

構文
【if文の記述方法 基本的な記述】
if 条件式:
    条件式が真の時の処理
else:
    条件式が偽の時の処理
#if文の記述方法
#価格が100円かどうかの表示させます。
price = 100
if price == 100:
    print("価格は100円です。")
else:
    print("価格は100円ではないです。")

実行結果

価格は100円です。

条件式が真の時の処理が実行されています。

偽の時の記述を省略

構文
【if文の記述方法 「偽」の時の記述を省略】
if 条件式:
    条件式が真の時の処理
#if文の記述方法 「偽」の時の記述を省略
#リンゴが50個以上あれば表示させる。
apple_count = 100
if apple_count >= 50:
    print("リンゴが50以上あります。")

実行結果

リンゴが50以上あります。

条件式が偽の処理の記述を省略することができます。

真の時の記述を省略

構文
【if文の記述方法 「真」の時の記述を省略】
if 条件式:
    pass
else:
    条件式が偽の時の処理
#if文の記述方法 「真」の時の記述を省略(passを記述)
#リンゴが50個未満であれば表示させる。
apple_count = 49
if apple_count >= 50:
    pass
else:
    print("リンゴは50個未満です。")

実行結果

リンゴは50個未満です。

条件式が真の処理の記述を省略することができます。ただし「pass」は記述する必要があります。

次々と判定させたい場合

構文
【if文の記述方法 次々と判定させたい場合】
if 条件式1:
    条件式1が真の時の処理
elif 条件式2:
    条件式2が真の時の処理
elif 条件式3:
    条件式3が真の時の処理
else:
    その他の時の処理
#if文の記述方法 次々と判定させたい場合
#デザートが何かを表示させる。
dessert = "apple"
if dessert == "orange":
    print("デザートはオレンジです。")
elif dessert == "apple":
    print("デザートはリンゴです。")
elif dessert == "banana":
    print("デザートはバナナです。")
else:
    print("デザートが何かわかりません。")

実行結果

デザートはリンゴです。

複数の条件式で「真」となる場合は、プログラムは上から順に処理されるので、最初に真となった条件式での処理を実行します。それ以後に「真」となる条件式があっても、その部分の処理は実行されません。

入れ子でので記述

構文
【if文の記述方法 次々と判定させたい場合】
if 条件式1:
    if 条件式2:
        条件式1が真で且つ条件式2が真の時の処理
#if文の記述方法 次々と判定させたい場合

length = 500
if length >= 400:
    if length < 600:
        print("長さは400以上で600未満です。")

実行結果

長さは400以上で600未満です。

長さが400以上で600未満であれば表示させています。

フロー制御の条件式

フロー制御の条件式には比較演算子や論理演算子が使用できます。

演算子意味
a == baとbが等しい
a != baとbが等しくない
a > baがbより大きい
a >= baがb以上
a < baがbより小さい
a <= baがb以下
a <> baとbが等しくない
a is baとbが等しい
a is not baとbが等しくない
a in baがbに含まれる
a not in baがbに含まれない
比較演算子
演算子意味
a and ba かつ b(AND 論理積)
a or ba 又は b(OR 論理和)
not aa でない(NOT 否定)
論理演算子

for文ー回数の繰り返し

回数の繰り返しの処理を行うには for 文を使用します。for文は下記の書式で記述します。

構文
【for文の記述方法】
for 変数 in 繰り返しの仕組み:
    繰り返し実行する処理

for文で最もよく使用する「繰り返しの仕組み」には、range()関数があります。range(個数)を指定すると、0から1ずつ増やした数値の列を得ることができます。例えばrange(6)を指定すると、「0,1,2,3,4,5」の合計6個の数字を得ることができます。range()関数を使用するときの注意点として最後の数値は処理に含まれない事です。range(6)と指定した場合は「6」は終了するときの数値になり、繰り返し処理が実行されるのは「5」までになります。

#1年生から6年生まで表示します。
#range(個数)で繰り返し処理の回数を指定します。
for a in range(6):
    gakunen = a + 1
    print(gakunen,"年生です。")

実行結果

1 年生です。
2 年生です。
3 年生です。
4 年生です。
5 年生です。
6 年生です。

range()で指定した回数を繰り返し処理しています。この場合は合計6回の処理を実行しています。

range(個数)は省略した記述になっており、もっと詳しくする場合はrange(開始値、終了値、間隔)で記述します。次のように記述しても上のプログラムと同じになります。

#1年生から6年生まで表示します。
#range(開始値,終了値,間隔)で繰り返し処理の回数を指定します。
for a in range(0,6,1):
    gakunen = a + 1
    print(gakunen,"年生です。")

実行結果

1 年生です。
2 年生です。
3 年生です。
4 年生です。
5 年生です。
6 年生です。

range(開始値、終了値、間隔)で指定した回数を繰り返し処理しています。結果はrange(6)と同じ結果になっています。

#偶数を表示します。
for gusuu in range(0,10,2):
    print(gusuu,"は偶数です。")

実行結果

0 は偶数です。
2 は偶数です。
4 は偶数です。
6 は偶数です。
8 は偶数です。

0から開始して間隔2で処理を実行するため、偶数のみを表示します。

#奇数を表示します。
for gusuu in range(1,11,2):
    print(gusuu,"は奇数です。")

実行結果

1 は奇数です。
3 は奇数です。
5 は奇数です。
7 は奇数です。
9 は奇数です。

1から開始して間隔2で処理を実行するため、奇数のみを表示します。

while文ー条件での繰り返し

条件での繰り返しの処理を行うには while 文を使用します。while文は下記の書式で記述します。

構文
while文の記述方法】
while 条件式:
    繰り返し実行する処理
#カウントダウンします。
i = 5
while i >= 1:
    print(i,"秒前です")
    i = i -1

実行結果

5 秒前です
4 秒前です
3 秒前です
2 秒前です
1 秒前です

条件式が真(残り秒数が1秒以上)の場合は処理を実行しています。
while文は条件式が「真=True」であれば処理を繰り返し実行するので、条件式の指定を誤るとプログラムが永久に終了しなくなるので注意が必要です。

break文ー処理の強制終了

処理の流れを強制的に終了し、その処理ブロックから抜ける命令に break 文があります。

構文
【break文の記述方法】
break
#カウントダウンしていますが2秒前で処理を強制終了します。
i = 5
while i >= 1:
    if i == 2:
        break
    print(i,"秒前です")
    i = i -1

実行結果

5 秒前です
4 秒前です
3 秒前です

残り時間が2秒になるとbreakが実行され、処理ブロックを強制終了しています。

continue文ー次の処理の繰り返しに移行する

繰り返し処理の途中で、次の処理に移行する(その回の処理をとばす)命令に continue 文があります。

構文
【continue文の記述方法】
continue
#カウントダウンしますが、2秒前の処理をとばします(実行しません)
for i in range(5,0,-1):
    if i == 2:
        continue
    print(i,"秒前です")

実行結果

5 秒前です
4 秒前です
3 秒前です
1 秒前です

残り時間が2秒のときはcontinue文が実行され、その回の処理を実行していない事が確認できます。

switch文、do~while文

Pythonには、switch文や、do~while文はありません。