8-1. if文の基本構文
if文は条件式や値を評価して、それが真(ture, 1)ならばプログラムブロックを実行し、偽(false、0)ならばプログラムブロックを無視します。なお、真とは条件式が正しい、または値が1であることです。偽とは条件式が間違っている、または値が0であることです。if文の基本形はif-else型になります。その他に、elseを省略したif型、複数の条件を設定できるif-elif-…型とif-elif-…-else型があります。1つ目の条件をチェックしたあと、真ならば対応するプログラムブロックを実行してif文の処理を終了します。偽ならば次の条件をチェックして成立する条件式があれば、対応するプログラムブロックを実行してif文の処理を終了します。すべての条件式が成立しなかった場合(偽の場合)、elseが定義されていれば、対応するプログラムブロックを実行してif文を終了します。elseが定義されていない場合は、そのままif文を終了します。
a=1
if a == 1:
print("条件式が真の場合")
else:
print("条件式が偽の場合")
a=1
if a == 1:
print("条件式が真の場合")
a=1
if a == 1:
print("条件式1が真の場合")
elif a == 2:
print("条件式2が真の場合")
▼プログラミングセル8-1.
a=1
if a == 1:
print("条件式1が真の場合")
elif a == 2:
print("条件式2が真の場合")
else:
print("すべての条件式が偽の場合")
8-2. インデントの注意
プログラムブロック部分の行頭のインデントがずれないように注意してください。
a=1
if a == 1:
print("条件式が真の場合")
print("インデントがずれないように注意してください")
▼プログラミングセル8-2.
a=1
if a == 1:
print("条件式が真の場合")
print("インデントがずれないように注意してください") #エラー箇所
8-3. 条件式で使える比較演算子
条件式には主に以下の比較演算子を使用します。比較演算子はXとYの2つの値を比較して、条件式が成立する場合(真の場合)はtrue、条件式が成立しない場合(偽の場合)はfalseを返します。trueの場合、対応するプログラムブロックを実行してif文を終了します。
演算子 | 算術 |
X == Y | XはYと等しい / YはXと等しい |
X != Y | XはYと異なる / YはXと異なる |
X < Y | XはYより小さい / YはXより大きい |
X > Y | XはYより大きい / YはXより小さい |
X <= Y | XはY以下である / YはX以上である |
X >= Y | XはY以上である / YはX以下である |
X is Y | XはYと等しい / YはXと等しい |
X is not Y | XはYと異なる / YはXと異なる |
X in Y | XはYに含まれる(文字列・リスト・タプルが対象) |
X not in Y | XはYに含まれない(文字列・リスト・タプルが対象) |
▼プログラミングセル8-3.
a=1
if a < 10:
print("条件式が真の場合")
else:
print("条件式が偽の場合")
8-4. if文の入れ子(ネスト)
if文の中にif文を記述して入れ子(ネスト)の状態にできます。
▼プログラミングセル8-4.
a=80
if a <= 50:
if a < 25:
print("入力値が25より小さい場合")
else:
print("入力値が25以上50以下の場合")
else:
if a < 75:
print("入力値が50より大きく75より小さい場合")
else:
print("入力値が75以上の場合")
8-5. 論理演算子による条件式の並記
論理演算子を利用することでif文の条件式を併記することができます。
論理演算子 | 説明 |
and | 論理積(かつ) |
or | 論理和(または) |
not | 否定(~でない) |
a=80
if a >= 25 and a <= 50:
print("入力値が25以上50以下の場合")
else:
print("その他の場合")
▼プログラミングセル8-5.
a=80
if a < 25 or a > 50:
print("入力値が25より小さい、または50より大きい場合")
else:
print("その他の場合")
8-6. 標準入力の値に対するif文
input関数と組み合わせることで標準入力した値に対してif文の処理を行うことができます。
▼プログラミングセル8-6.
a=int(input())
if(a%2):
print("入力値は奇数である")
else:
print("入力値は偶数である")
8-7. pass文
処理は何も必要ないが、プログラムの構文上、何か書かなければいけないときはpass文を利用します。
▼プログラミングセル8-7.
a=int(input())
if(a%2):
print("入力値は奇数である")
else:
pass # 偶数のときは何もしない
8-8. match文の基本構造
match文では、変数の値が指定した値と等しいかどうかを調べ、値ごとに対応する処理(case:)を設定して実行します。また、条件に合わなかったときの処理をアンダーバー( _ )で設定できます。この動作は、C言語などのswitch文と同じ動作になります。なお、|を利用すれば1つの処理に対して複数の値を設定することができます。
a=int(input())
match a:
case 1:
print("入力した値は1です")
case 2:
print("入力した値は2です")
case 3:
print("入力した値は3です")
case _:
print("1~3を入力してください。")
▼プログラミングセル8-8.
a=int(input())
match a:
case 1 | 2:
print("入力した値は1か2です")
case 3:
print("入力した値は3です")
case _:
print("1~3を入力してください。")
8-9. タプルを指定したmatch文
match文では、タプルを指定することもできます。このとき、値を指定せずに変数を設定することもできます。指定した変数にはアンパック代入(複数の値の代入)の形で値が代入される点に注意してください。
▼プログラミングセル8-9.
a, b=map(int, input().split())
c=(a, b)
match c:
case (0, 0):
print("処理1:入力した値は(0, 0)です")
case (0, b):
print(f"処理2:入力した値は(0, {b})です") #第1の値を未指定
case (a, 0):
print(f"処理3:入力した値は({a}, 0)です") #第2のを未指定
case (a, b):
print(f"処理4:入力した値は({a}, {b})です") #両方を未指定
case _:
print("処理5:入力した値にエラーがあります")
問題
以下の問題に解答しましょう。
得点 | 評価 |
90点以上 | AA |
80点以上90点未満 | A |
70点以上80点未満 | B |
60点以上70点未満 | C |
0点以上60点未満 | D |
その他 | X |