データを読み込み中...

この教材では、プログラムに「判断」をさせる方法を学びます。これまで学んだプログラムは、決まった順番で処理を実行するだけでしたが、条件分岐を使うことで「状況に応じて異なる処理を実行する」ことができるようになります。
学習内容:
日常生活では、私たちは常に判断をしながら行動しています
プログラムでも同じように、ある条件が満たされているかどうかで、実行する処理を変える必要があります。これを「条件分岐」と呼びます。
条件分岐がないと、すべてのユーザーに同じ処理しかできません。条件分岐があることで、ユーザーごとに適切な処理を実行できるようになるのです。
条件分岐は、次のような流れで動作します
これは、教材1-1で学んだ比較演算子や、教材1-2で学んだ論理演算子の結果(TrueまたはFalse)を使って実現します。
Pythonでは、if文を使って条件分岐を行います。基本的な構文は以下の通りです
if 条件式:
# 条件がTrueのときに実行される処理
処理1
処理2
重要なポイント:
ifの後に条件式を書く:(コロン)をつけるまずは簡単な例を見てみましょう
age = 20
if age >= 18:
print("成人です")
print("ようこそ!")
print("プログラム終了")
このプログラムの実行結果
成人です
ようこそ!
プログラム終了
ageは20なので、age >= 18はTrueです。そのため、インデントされた2つのprint()が実行されます。
もしage = 15だった場合
age = 15
if age >= 18:
print("成人です")
print("ようこそ!")
print("プログラム終了")
実行結果
プログラム終了
age >= 18はFalseなので、インデントされた部分はスキップされ、最後のprint()だけが実行されます。
Pythonでは、インデントがプログラムの構造を決定します。
他のプログラムのように()や{}を使用しないため、複数言語を学んでいる場合は注意しましょう。
# 正しい例
age = 20
if age >= 18:
print("成人です") # インデントあり:if文の中
print("ようこそ") # インデントあり:if文の中
print("終了") # インデントなし:if文の外
# 間違った例
age = 20
if age >= 18:
print("成人です") # エラー!インデントがない
インデントは通常、スペース4つまたはタブ1つを使います。
こちらも変数のように実際のコーディングルールに従って書くようにしましょう。
インデントのルール
score = 85
if score >= 80:
print("優秀です!")
print("素晴らしい成績です")
print("結果を記録しました") # インデントなし:if文の外
if文では比較演算子や、論理演算子を自由に使えます。
# 等しいかどうかをチェック
password = "abc123"
if password == "abc123":
print("ログイン成功")
# 大小の比較
temperature = 28
if temperature > 30:
print("真夏日です")
if temperature >= 25:
print("夏日です")
# 等しくないことをチェック
status = "processing"
if status != "completed":
print("処理中です")
論理演算子を使った複雑な条件
age = 25
has_license = True
# 複数の条件を組み合わせる
if age >= 18 and has_license:
print("運転できます")
# orを使った条件
day = "土曜日"
is_holiday = False
if day == "土曜日" or day == "日曜日" or is_holiday:
print("休日料金が適用されます")
これまでのif文は「条件がTrueなら何かをする」だけでした。しかし、実際には「条件がTrueなら処理A、Falseなら処理B」という2択の判断が必要な場合も多くあります。
そのような場合には、else(そうでなければ)を使います
if 条件式:
# 条件がTrueのときの処理
else:
# 条件がFalseのときの処理
具体例を見てみましょう
age = 15
if age >= 18:
print("成人です")
print("入場できます")
else:
print("未成年です")
print("保護者の同意が必要です")
print("確認が完了しました")
ageが15なので、条件age >= 18はFalseです。そのため、elseの中の処理が実行されます。
未成年です
保護者の同意が必要です
確認が完了しました
もしage = 20だった場合
成人です
入場できます
確認が完了しました
例1: ログイン判定
input_password = "python123"
correct_password = "python123"
if input_password == correct_password:
print("ログイン成功")
print("マイページへようこそ")
else:
print("パスワードが違います")
print("もう一度入力してください")
例2: 在庫チェック
stock = 0
if stock > 0:
print("在庫あり")
print("購入できます")
else:
print("在庫切れ")
print("入荷をお待ちください")
例3: 合否判定
score = 75
pass_line = 60
if score >= pass_line:
print("合格です!")
print("おめでとうございます")
else:
print("不合格です")
print("次回頑張りましょう")
print("テスト結果: {}点".format(score))
条件分岐の結果を変数に格納することもよくあります
temperature = 28
message = ""
if temperature >= 30:
message = "暑いので水分補給をしましょう"
else:
message = "過ごしやすい気温です"
print(message)
このように、条件によって変数の値を変えることができます。
条件式は、読んだときに何を判定しているのかがすぐわかるように書くことが大切です。
# わかりにくい例
x = 18
if x >= 18:
print("OK")
# わかりやすい例
age = 18
if age >= 18:
print("成人です")
変数名を工夫するだけで、格段に読みやすくなります。
複雑な条件式は、いったん変数に入れると読みやすくなります。
# 複雑な条件式をそのまま書いた例
age = 25
income = 3000000
if (age >= 20 and age < 65) and income >= 2000000:
print("ローンの審査が通りました")
# 条件を変数に入れた例(推奨)
age = 25
income = 3000000
is_working_age = (age >= 20 and age < 65)
has_stable_income = (income >= 2000000)
if is_working_age and has_stable_income:
print("ローンの審査が通りました")
2つ目の例の方が、何を判定しているのかが明確です。
条件式は、できるだけ肯定形で書く方がわかりやすくなります。
# 否定形の例
is_not_available = True
if not is_not_available:
print("利用できます")
# 肯定形の例(推奨)
is_available = False
if is_available:
print("利用できます")
Pythonでは、数値の範囲を簡潔に書くことができます。
score = 75
# 通常の書き方
if score >= 60 and score < 80:
print("合格ライン")
# Pythonの簡潔な書き方(推奨)
if 60 <= score < 80:
print("合格ライン")
以下の要件を満たすプログラムを作成してください。
要件
priceに商品の価格(例: 1500)を代入するbudgetに予算(例: 2000)を代入する期待する出力例
購入できます
判定終了
ヒント
<=演算子を使います以下の要件を満たすプログラムを作成してください。
要件
temperatureに気温(例: 28)を代入する期待する出力例
冷房をつけましょう
現在の気温: 28度
ヒント
以下の要件を満たすプログラムを作成してください。
要件
ageに年齢(例: 22)を代入するhas_ticketにチケットの有無(例: True)を代入する期待する出力例
入場できます
年齢: 22
チケット: True
ヒント
以下の要件を満たすプログラムを作成してください。
要件
scoreに格納する期待する出力例
点数を入力してください: 75
合格です!
点数: 75点
または
点数を入力してください: 45
不合格です
点数: 45点
あと15点必要です
ヒント
60 - scoreで計算できますこの教材では、以下の内容を学習しました:
if 条件式:次の教材では、3つ以上の選択肢がある場合の条件分岐(elif)や、条件分岐を入れ子にする方法を学びます。演習問題をしっかり解いて、if文とif-else文をマスターしましょう。