ファイル名: note06.ipynb
ユーザーが入力した値を条件によって取り扱いを変える処理を行います。これを条件分岐と呼びます。

プログラミングでは、様々な条件によって取り扱いを変える場合が多く、この条件分岐によって複雑な対応ができるのです。
IF文の構造
1. 基本的なif文
age = int(input("Please enter your age: "))
if age >= 18:
print("You can vote.")
else:
print("You cannot vote.")
Pythonでは条件文をifとelseで処理します。ルールは以下のようになっています。
- ifの後に条件式を書く
- 次の行に条件を満たす場合の処理
- elseの後に、条件を満たさない場合の処理(elseは省略可能)
- ifとelseの行には、コロン「:」をつける(ここまでという区切り目)
- if文の中で行われる処理は必ずインデント(字下げ)
<注意> Python では、if や else の中で実行される処理を インデント(字下げ)で表します。
これは、他の言語で { } を使う代わりに、インデントでブロック(処理のまとまり)を示す仕組みになっているためです。
- インデントは 半角スペース4つ が一般的(推奨)
- ブロックの中の行は 同じ幅でインデント する
- ブロックが終わると インデントを戻す(左端に戻る)
これを守らないと IndentationError(インデントエラー)になります。
2. 比較演算子
条件を作るために使う記号を比較演算子と呼びます。
条件は、「A 比較演算子 B」という形になっています。
| 演算子 | 意味 | 例 | 結果 |
|---|---|---|---|
| == | 等しい | 5 == 5 | True |
| != | 等しくない | 5 != 3 | True |
| > | より大きい | 7 > 3 | True |
| < | より小さい | 2 < 8 | True |
| >= | 以上 | 5 >= 5 | True |
| <= | 以下 | 3 <= 7 | True |
>=や<=左が不等号で右が等号。順番を間違えないように
3. 比較演算子の利用例
以下のように複数の条件分岐がある場合、elseとifを合体させたelifを使うことができる。

score = int(input("Please enter your test score: "))
if score == 100:
print("Perfect score! Excellent!")
elif score >= 80:
print("Great job!")
elif score >= 60:
print("You passed")
else:
print("Please try harder")
条件式(if, elif, elseで始まる文は終わりはコロン「:」)
処理行はインデントされているのを確認しておこう。
論理演算子
複数の条件を組み合わせることができます。
| 演算子 | 意味 | 例 |
|---|---|---|
and | かつ(両方とも真) | age >= 18 and age < 65 |
or | または(どちらか真) | day == "土曜日" or day == "日曜日" |
not | 否定(真偽を逆転) | not (score < 60) |
条件は3つ一度に組み合わせることもできる。A and B and C とすると、3つの条件A,B,Cの全てを満たす必要があり、A or B or C とすると、3つの条件A,B,Cのいずれかを満たせば良い。

age = int(input("年齢を入れてください"))
if age >= 13 and age <=18:
print("中高生です")
else:
print("中高生ではありません")
エラー対応
ユーザーに整数値を入れるよう促しているのに、文字を入れてしまった場合、Pythonでは、ValueError が表示されます。入力時のエラーの代表的なものは次のものです。
| エラー名 | 原因 |
|---|---|
ValueError | 整数・小数・文字の間違い |
ZeroDivisionError | 0で割った |
TypeError | 型が合わない("3" + 5 など) |
try文
プログラム実行中に上記のようなエラーが起きたときに、プログラムを止めずに対処する方法としてtry文があります。
たとえば、入力された整数の逆数を求めるプログラムの場合、整数でなければValueError 0の場合は割り算ができないのでZeroDivisionErrorが発生します。Try文は、Pythonのこのエラー発出に紐づけて、処理をする機能にです。

try:
x = int(input("整数を入力してください"))
result = 10 / x
print(result)
except ValueError:
print("数字を入力してください")
except ZeroDivisionError:
print("0では割れません")
条件文のif やelseと同じように、コロン「:」やインデント(字下げ)が必要です。

コメント