年齢によって料金を変える
Python の if 文は、条件が成り立つときだけ、決めた処理を実行する仕組みです。これを使うと、プログラムは年齢や点数によって、違う答えを出せます。
美術館は、子どもと大人で入館料を変えています。窓口の人は、年齢を聞いて、頭の中で場合分けをしています。
このレッスンのゴール
メモ
if、elif、else を使って、プログラムに場合分けをさせることができる。
キーワード
| ことば | いみ | れい |
|---|---|---|
| 条件 | 成り立つか成り立たないかを決める式 | age < 18 |
| 比較演算子 | 2つの値を比べる記号 | == != < >= |
| 真偽値 | True か False のどちらかの値 | |
| if文 | 条件が True のときだけ処理を実行する文 | |
| インデント | 行の頭の空白。処理のまとまりを表す | |
| 論理演算子 | 条件を組み合わせる言葉 | and or not |
学生が入力するセルは、このプレビューでは空白です。
比較すると True か False が返る
条件は、2つの値を比べる式です。結果は、真偽値の True(成り立つ)か False(成り立たない)のどちらかです。
比べる記号は、下の表のとおりです。等しいかどうかは、= を2つ重ねた == で調べます。
例: 比較演算子と結果
| 式 | 読み方 | 結果 |
|---|---|---|
| 15 < 18 | 15は18より小さい | True |
| 18 >= 18 | 18は18以上 | True |
| 20 == 21 | 20は21と等しい | False |
| 20 != 21 | 20は21と等しくない | True |
学生が入力するセルは、このプレビューでは空白です。
条件の結果を表示する
python3 -c "age = 15; print(age < 18)"ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
if と else で道を2つに分ける
if 条件: の下に、条件が True のときの処理を書きます。else: の下には、そうでないときの処理を書きます。
行の頭を4つの空白で下げます。これがインデントです。下げた行までが、そのときの処理です。
5行のプログラムを書き出す
printf 'age = 15\nif age < 18:\n print("child")\nelse:\n print("adult")\n' > check.pyここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
そのプログラムを実行する
python3 check.pyここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
elif で道を3つ以上にする
# 点数で評価を決めます。
score = 72
if score >= 80:
print("A")
elif score >= 60:
print("B")
else:
print("C")
# score を 85 に変えて実行しましょう。次に 40 にしましょう。
よくある間違い
注意
「条件でも、= を1つ書けばよい」と考える人がいます。= は代入で、== は比較です。if score = 80: はエラーになります。聞きたいときは、必ず == を使います。
and、or、not で条件を組み合わせる
and は、両方が True のときだけ True です。or は、どちらか一方が True なら True です。not は、True と False を入れ替えます。
「18歳以上で、かつ65歳未満」は、age >= 18 and age < 65 と書きます。
例: 組み合わせた条件
| 式 | 結果 | わけ |
|---|---|---|
| 10 > 3 and 2 > 5 | False | 右が False |
| 10 > 3 or 2 > 5 | True | 左が True |
| not 2 > 5 | True | 2 > 5 は False なので反対 |
| age >= 18 and age < 65 (age が 30) | True | 両方が True |
学生が入力するセルは、このプレビューでは空白です。
3つの論理を並べる
python3 -c "print(7 % 2 == 1, 10 > 3 and 2 > 5, not False)"ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
課題では関数の枠が先に書いてある
課題には def ticket_price(age, day): で始まる枠が書いてあります。これは関数で、決まった手順に名前をつけたものです。
詳しくは第5回で習います。今は、age と day が入ってきて、return の後ろの値が答えになる、とだけ覚えてください。