🔀 ステップ11: if文で条件分岐
条件によって処理を変える、プログラムの基本を学ぼう!
今まで作ったプログラムは、上から順番に全ての行が実行されていました。今回は、「条件によって実行する処理を変える」方法を学びます。これが「条件分岐」です。
📖 このステップで学ぶこと
・条件分岐とは何か、なぜ必要か
・if文の基本的な書き方
・インデント(字下げ)の重要性
・比較演算子(==, !=, >, <, >=, <=)
・else文で「それ以外」の処理
・elif文で複数の条件を分岐
・実践的なプログラム例
📝 1. 条件分岐とは何か?
まず、条件分岐とは何か、なぜ必要なのかを理解しましょう。
🔰 今までのプログラムの問題点
💡 今までのプログラム
今まで作ったプログラムは、上から順番にすべての行が実行されていました。
name = "太郎"
print("こんにちは")
print(f"{name}さん")
print("今日もいい天気ですね")
このプログラムは常に同じ順番で、同じ処理が実行されます。
🔰 条件分岐が必要な場面
でも実際のプログラムでは、状況によって処理を変えたいことがたくさんあります。
📌 条件分岐が必要な例
・年齢によって表示を変える:18歳以上なら「成人です」、未満なら「未成年です」
・点数によって判定を変える:60点以上なら「合格」、未満なら「不合格」
・天気によってアドバイスを変える:雨なら「傘を持っていこう」
・パスワードをチェックする:正しければログイン成功、間違いならエラー
このように「もし〇〇なら△△する」という処理を実現するのが条件分岐です。
Pythonではif文を使って条件分岐を書きます。
🔰 条件分岐のイメージ
💡 日常生活での条件分岐
条件分岐は日常生活でも常に行っています:
・「もし雨が降っていたら、傘を持っていく」
・「もし冷蔵庫に牛乳がなければ、買い物に行く」
・「もし信号が赤なら、止まる。青なら進む」
プログラムでも同じように「もし〇〇なら」という判断をさせることができます。
🔀 2. if文の基本
条件分岐を実現する「if文」の基本的な書き方を学びましょう。
📘 if文の書き方
📌 if文の基本構文
if 条件:
条件がTrueの時に実行する処理
ポイント:
・if の後に「条件」を書く
・条件の後に :(コロン)を付ける
・実行する処理は インデント(字下げ) する
📝 最もシンプルなif文
コード:if文の基本例
# 年齢を設定
age = 20
# もし年齢が18以上なら
if age >= 18:
print("あなたは成人です")
実行結果
あなたは成人です
💡 コードの解説
1. age = 20 → 変数ageに20を代入
2. if age >= 18: → 「もしageが18以上なら」という条件
・age >= 18 は「20 >= 18」なので True(真)
・条件の後に : を忘れずに!
3. print("あなたは成人です")
・条件がTrueなので、この行が実行される
・行の先頭にスペース4つ分の「インデント」がある
📝 条件がFalseの場合
条件がFalse(偽)の場合、if文の中の処理は実行されません。
コード:条件がFalseの場合
# 年齢を設定
age = 15
# もし年齢が18以上なら
if age >= 18:
print("あなたは成人です")
print("プログラム終了")
実行結果
プログラム終了
💡 コードの解説
・age >= 18 は「15 >= 18」なので False(偽)
・条件がFalseなので、print("あなたは成人です") は実行されない
・print("プログラム終了") はif文の外(インデントなし)なので、常に実行される
⚠️ インデント(字下げ)が超重要!
Pythonでは、インデント(行の先頭の空白)がプログラムの構造を決めます。
🔑 超重要!
・if文の中で実行したい処理は、必ずインデント(字下げ)する
・インデントはスペース4つが標準
・インデントを忘れるとエラーになる
・インデントの深さで「if文の中かどうか」が決まる
コード:インデントの範囲
age = 20
if age >= 18:
print("あなたは成人です") # ← if文の中(インデントあり)
print("選挙に行けます") # ← if文の中(インデントあり)
print("車の免許が取れます") # ← if文の中(インデントあり)
print("プログラム終了") # ← if文の外(インデントなし)
実行結果
あなたは成人です 選挙に行けます 車の免許が取れます プログラム終了
💡 インデントの意味
・インデントがある行(3行)→ if文の条件がTrueの時だけ実行
・インデントがない行(最後の1行)→ 条件に関係なく常に実行
📝 年齢を変えると結果が変わる
コード:年齢を15に変更
age = 15 # ← 15に変更
if age >= 18:
print("あなたは成人です")
print("選挙に行けます")
print("車の免許が取れます")
print("プログラム終了")
実行結果
プログラム終了
条件がFalseなので、if文の中の3行は実行されませんでした。
❌ インデントを忘れるとエラー
コード:インデントを忘れた場合
age = 20
if age >= 18:
print("あなたは成人です") # ← インデントがない!
❌ エラーメッセージ
IndentationError: expected an indented block
「インデントされたブロックが必要です」というエラーです。
📘 if文の書き方まとめ
📌 if文を書く時の3つのルール
| ルール | 説明 | 例 |
| 1. ifの後に条件 | 比較演算子を使って条件を書く | if age >= 18 |
| 2. コロンを付ける | 条件の後に : を忘れずに | if age >= 18: |
| 3. インデントする | 実行する処理はスペース4つ分字下げ | print(“…”) |
⚖️ 3. 比較演算子
if文の「条件」を作るために使うのが「比較演算子」です。2つの値を比べて、True(真)またはFalse(偽)を返します。
📘 比較演算子一覧
📌 Pythonの比較演算子
| 演算子 | 意味 | 例 | 結果 |
| == | 等しい | 5 == 5 | True |
| != | 等しくない | 5 != 3 | True |
| > | より大きい | 5 > 3 | True |
| < | より小さい | 5 < 3 | False |
| >= | 以上(大きいか等しい) | 5 >= 5 | True |
| <= | 以下(小さいか等しい) | 5 <= 3 | False |
⚠️ 超重要:== と = の違い
🔑 絶対に覚えておくこと
・=(イコール1つ)→ 代入(値を変数に入れる)
・==(イコール2つ)→ 比較(2つの値が等しいかチェック)
if文で「等しいかどうか」を調べる時は、必ず==を使います!
コード:= と == の違い
# = は代入(値を変数に入れる)
age = 20 # ageに20を代入
# == は比較(等しいかチェック)
if age == 20: # ageが20と等しいか?
print("20歳です")
📝 比較演算子の実例
各比較演算子を使った例を見てみましょう。
コード:数値の比較(>=)
score = 85
# 80点以上かどうかチェック
if score >= 80:
print("素晴らしい成績です!")
実行結果
素晴らしい成績です!
85 >= 80 は True なので、print文が実行されます。
コード:文字列の比較(==)
name = "太郎"
# 名前が「太郎」かどうかチェック
if name == "太郎":
print("こんにちは、太郎さん!")
実行結果
こんにちは、太郎さん!
“太郎” == “太郎” は True なので、print文が実行されます。
コード:等しくないかチェック(!=)
weather = "雨"
# 天気が「晴れ」ではないかチェック
if weather != "晴れ":
print("傘を持っていきましょう")
実行結果
傘を持っていきましょう
“雨” != “晴れ” は True なので、print文が実行されます。
コード:より小さいかチェック(<)
temperature = 5
# 気温が10度未満かチェック
if temperature < 10:
print("寒いので暖かくしましょう")
実行結果
寒いので暖かくしましょう
5 < 10 は True なので、print文が実行されます。
📝 比較演算子で変数を使う
コード:ユーザー入力と組み合わせる
# ユーザーに点数を入力してもらう
score = int(input("点数を入力してください: "))
# 100点かどうかチェック
if score == 100:
print("満点おめでとう!")
実行結果(100と入力した場合)
点数を入力してください: 100 満点おめでとう!
🔄 4. else - 条件に当てはまらない時
「もし〇〇なら△△する、それ以外は□□する」という処理を書きたい時は、elseを使います。
📘 if-else文の書き方
📌 if-else文の基本構文
if 条件:
条件がTrueの時の処理
else:
条件がFalseの時の処理
ポイント:
・elseの後にも :(コロン)を付ける
・elseは条件を書かない(ifの条件が False の時に実行される)
📝 if-elseの基本例
コード:成人かどうかの判定
age = 15
if age >= 18:
print("あなたは成人です")
else:
print("あなたは未成年です")
実行結果
あなたは未成年です
💡 コードの解説
1. age >= 18 → 15 >= 18 なので False
2. 条件がFalseなので、if文の中は実行されない
3. elseの中の処理が実行される
📝 年齢を変えてみる
コード:年齢を20に変更
age = 20 # ← 20に変更
if age >= 18:
print("あなたは成人です")
else:
print("あなたは未成年です")
実行結果
あなたは成人です
20 >= 18 は True なので、if文の中が実行されます。
📝 実用例:合否判定プログラム
コード:合否判定
# ユーザーに点数を入力してもらう
score = int(input("点数を入力してください: "))
# 60点以上なら合格、それ以外は不合格
if score >= 60:
print("合格です!おめでとう!")
else:
print("不合格です。次回頑張りましょう!")
実行結果(75と入力した場合)
点数を入力してください: 75 合格です!おめでとう!
実行結果(45と入力した場合)
点数を入力してください: 45 不合格です。次回頑張りましょう!
📝 実用例:偶数・奇数の判定
コード:偶数・奇数の判定
# ユーザーに数字を入力してもらう
number = int(input("数字を入力してください: "))
# 2で割った余りが0なら偶数、それ以外は奇数
if number % 2 == 0:
print(f"{number}は偶数です")
else:
print(f"{number}は奇数です")
実行結果(8と入力した場合)
数字を入力してください: 8 8は偶数です
💡 コードの解説
・% は剰余演算子(割り算の余りを求める)
・number % 2 → numberを2で割った余り
・余りが0なら2で割り切れる → 偶数
・余りが1なら2で割り切れない → 奇数
📝 複数行の処理
if文やelse文の中には、複数の処理を書くことができます。
コード:複数行の処理
password = input("パスワードを入力してください: ")
if password == "python123":
print("ログイン成功!")
print("ようこそ!")
print("メニューを表示します...")
else:
print("パスワードが間違っています")
print("もう一度お試しください")
実行結果(python123と入力した場合)
パスワードを入力してください: python123 ログイン成功! ようこそ! メニューを表示します...
💡 ポイント
同じインデント(字下げ)の行は、すべて同じブロックとして扱われます。
if文の中に複数行書いても、すべて同じ条件で実行されます。
🔀 5. elif - 複数の条件を分岐
3つ以上の場合に分けたい時は、elif(else if の略)を使います。
🔰 なぜelifが必要?
💡 if-elseだけでは足りない場面
例えば、テストの点数で「優」「良」「可」「不可」の4段階評価をしたい場合:
・80点以上 → 優
・60点以上80点未満 → 良
・40点以上60点未満 → 可
・40点未満 → 不可
if-elseだけでは2つにしか分けられません。elifを使うと3つ以上に分けられます。
📘 if-elif-else文の書き方
📌 if-elif-else文の基本構文
if 条件1:
条件1がTrueの時の処理
elif 条件2:
条件1がFalseで、条件2がTrueの時の処理
elif 条件3:
条件1と2がFalseで、条件3がTrueの時の処理
else:
すべての条件がFalseの時の処理
ポイント:
・elifは「else if」の略
・elifは何個でも書ける
・上から順番にチェックして、最初にTrueになった条件だけが実行される
📝 if-elif-elseの基本例
コード:3段階の評価
score = 75
if score >= 80:
print("優秀です!")
elif score >= 60:
print("合格です!")
else:
print("不合格です...")
実行結果
合格です!
💡 コードの解説
1. score >= 80 → 75 >= 80 は False → 次へ
2. score >= 60 → 75 >= 60 は True → 「合格です!」を表示
3. 条件が一致したので、else以降は実行されない
⚠️ 重要:上から順番にチェックされる
🔑 超重要!
if-elif-else文は上から順番に条件をチェックします。
最初にTrueになった条件の処理だけが実行されます。
一度条件が一致したら、それ以降のelifやelseは実行されません。
コード:チェックの順番を確認
score = 95
# 上から順番にチェックされる
if score >= 80:
print("80点以上です") # ← これが実行される
elif score >= 60:
print("60点以上です") # ← 実行されない(すでに条件が一致したから)
elif score >= 40:
print("40点以上です") # ← 実行されない
else:
print("40点未満です") # ← 実行されない
実行結果
80点以上です
95点は80点以上でもあり60点以上でもありますが、最初に一致した条件だけが実行されます。
📝 成績評価プログラム(5段階)
コード:5段階の成績評価
# ユーザーに点数を入力してもらう
score = int(input("点数を入力(0-100): "))
# 上から順番にチェック
if score >= 90:
print("評価: S(素晴らしい!)")
elif score >= 80:
print("評価: A(優秀です!)")
elif score >= 70:
print("評価: B(良くできました)")
elif score >= 60:
print("評価: C(合格です)")
else:
print("評価: D(不合格...)")
実行結果(85と入力した場合)
点数を入力(0-100): 85 評価: A(優秀です!)
💡 elifの数に制限はない
elifは必要なだけいくつでも書くことができます。
ただし、多すぎると読みにくくなるので注意しましょう。
📝 年齢区分判定プログラム
コード:年齢による区分判定
# ユーザーに年齢を入力してもらう
age = int(input("年齢を入力してください: "))
# 年齢に応じた区分を表示
if age < 0:
print("年齢が不正です")
elif age < 13:
print("あなたは子どもです")
elif age < 20:
print("あなたは未成年です")
elif age < 65:
print("あなたは成人です")
else:
print("あなたはシニアです")
実行結果(16と入力した場合)
年齢を入力してください: 16 あなたは未成年です
🎯 6. 実践的なプログラム例
ここまで学んだ内容を使って、実用的なプログラムを作ってみましょう。
例1: 気温による服装アドバイス
コード:服装アドバイス
# 気温を入力
temperature = int(input("今日の気温(℃)を入力: "))
# 気温に応じた服装をアドバイス
if temperature >= 30:
print("とても暑いです。半袖・短パンがおすすめ!")
print("水分補給を忘れずに!")
elif temperature >= 25:
print("暑いです。半袖がおすすめ!")
elif temperature >= 15:
print("過ごしやすい気温です。長袖がおすすめ!")
elif temperature >= 5:
print("肌寒いです。上着を持っていきましょう!")
else:
print("とても寒いです。コートを着ていきましょう!")
print("手袋やマフラーもあると安心!")
実行結果(12と入力した場合)
今日の気温(℃)を入力: 12 過ごしやすい気温です。長袖がおすすめ!
例2: 割引計算プログラム
コード:年齢に応じた割引計算
# 商品の値段と年齢を入力
price = int(input("商品の値段(円): "))
age = int(input("年齢: "))
# 年齢に応じた割引を適用
if age <= 12:
# 12歳以下は50%割引
discount = 0.5
final_price = price * discount
print(f"子ども割引(50%OFF)が適用されました!")
elif age >= 65:
# 65歳以上は30%割引
discount = 0.7
final_price = price * discount
print(f"シニア割引(30%OFF)が適用されました!")
else:
# それ以外は割引なし
final_price = price
print("割引はありません")
print(f"お支払い金額: {int(final_price)}円")
実行結果(値段1000、年齢10と入力した場合)
商品の値段(円): 1000 年齢: 10 子ども割引(50%OFF)が適用されました! お支払い金額: 500円
例3: BMI判定プログラム
コード:BMI計算と判定
# 身長と体重を入力
height = float(input("身長(cm): "))
weight = float(input("体重(kg): "))
# BMIを計算(体重÷身長(m)の2乗)
height_m = height / 100 # cmをmに変換
bmi = weight / (height_m * height_m)
# 結果を表示
print(f"あなたのBMIは{bmi:.1f}です")
# BMIに応じた判定
if bmi < 18.5:
print("判定: やせ型")
print("もう少し食べても大丈夫ですよ!")
elif bmi < 25:
print("判定: 標準")
print("健康的な体型です!")
elif bmi < 30:
print("判定: 肥満(軽度)")
print("少し運動を心がけましょう")
else:
print("判定: 肥満(重度)")
print("健康のために生活習慣を見直しましょう")
実行結果(身長170、体重65と入力した場合)
身長(cm): 170 体重(kg): 65 あなたのBMIは22.5です 判定: 標準 健康的な体型です!
例4: うるう年の判定
コード:うるう年の判定
# 年を入力
year = int(input("年を入力してください: "))
# うるう年の判定
# 条件1: 400で割り切れる → うるう年
# 条件2: 100で割り切れる → うるう年ではない
# 条件3: 4で割り切れる → うるう年
# それ以外 → うるう年ではない
if year % 400 == 0:
print(f"{year}年はうるう年です")
elif year % 100 == 0:
print(f"{year}年はうるう年ではありません")
elif year % 4 == 0:
print(f"{year}年はうるう年です")
else:
print(f"{year}年はうるう年ではありません")
実行結果(2024と入力した場合)
年を入力してください: 2024 2024年はうるう年です
💡 うるう年のルール
・4で割り切れる年はうるう年
・ただし、100で割り切れる年はうるう年ではない
・ただし、400で割り切れる年はうるう年
例: 2000年(400で割り切れる)→ うるう年
例: 1900年(100で割り切れるが400で割り切れない)→ うるう年ではない
例: 2024年(4で割り切れる)→ うるう年
例5: 簡単なじゃんけんゲーム
コード:じゃんけんゲーム(コンピューターは固定)
print("じゃんけんゲーム!")
print("=" * 30)
# ユーザーの手を入力
user = input("グー、チョキ、パーのどれか入力: ")
# コンピューターの手(今回は固定で「グー」)
computer = "グー"
print(f"あなた: {user}")
print(f"コンピューター: {computer}")
# 勝敗判定
if user == computer:
print("あいこ!")
elif user == "パー":
# グーに対してパーは勝ち
print("あなたの勝ち!")
elif user == "チョキ":
# グーに対してチョキは負け
print("あなたの負け...")
elif user == "グー":
# グーに対してグーはあいこ(上で処理済み)
print("あいこ!")
else:
print("グー、チョキ、パーのどれかを入力してください")
実行結果(パーと入力した場合)
じゃんけんゲーム! ============================== グー、チョキ、パーのどれか入力: パー あなた: パー コンピューター: グー あなたの勝ち!
📝 練習問題(15問)
ここまで学んだことを実際に手を動かして確認しましょう。
問題1:正の数・負の数の判定(初級)
📋 問題
数字を入力してもらい、正の数なら「正の数です」、負の数なら「負の数です」と表示しましょう。
解答を見る
コード
# 数字を入力
number = int(input("数字を入力: "))
# 正負を判定
if number > 0:
print("正の数です")
else:
print("負の数です")
実行結果
数字を入力: 5 正の数です
問題2:10以上かどうか(初級)
📋 問題
数字を入力してもらい、10以上なら「10以上です」と表示するプログラムを作りましょう。
解答を見る
コード
# 数字を入力
number = int(input("数字を入力: "))
# 10以上かどうか判定
if number >= 10:
print("10以上です")
実行結果
数字を入力: 15 10以上です
💡 ポイント
elseを書かなくても問題ありません。条件に当てはまらない時に何も表示しない場合は、elseは省略できます。
問題3:名前チェック(初級)
📋 問題
名前を入力してもらい、もし名前が「太郎」なら「こんにちは、太郎さん!」、それ以外なら「こんにちは!」と表示しましょう。
解答を見る
コード
# 名前を入力
name = input("名前を入力: ")
# 名前が「太郎」かどうか判定
if name == "太郎":
print("こんにちは、太郎さん!")
else:
print("こんにちは!")
実行結果
名前を入力: 太郎 こんにちは、太郎さん!
問題4:大人・子どもの判定(初級)
📋 問題
年齢を入力してもらい、18歳以上なら「大人」、それ以外なら「子ども」と表示しましょう。
解答を見る
コード
# 年齢を入力
age = int(input("年齢: "))
# 18歳以上かどうか判定
if age >= 18:
print("大人")
else:
print("子ども")
実行結果
年齢: 20 大人
問題5:3の倍数判定(中級)
📋 問題
数字を入力してもらい、3の倍数なら「3の倍数です」、それ以外なら「3の倍数ではありません」と表示しましょう。
解答を見る
コード
# 数字を入力
number = int(input("数字を入力: "))
# 3で割った余りが0かどうか判定
if number % 3 == 0:
print("3の倍数です")
else:
print("3の倍数ではありません")
実行結果
数字を入力: 9 3の倍数です
💡 ポイント
%は剰余演算子(余りを求める)です。
3で割った余りが0なら、3で割り切れる = 3の倍数です。
問題6:絶対値の計算(中級)
📋 問題
数字を入力してもらい、その絶対値を表示しましょう。(マイナスの数ならプラスに変換)
解答を見る
コード
# 数字を入力
number = int(input("数字を入力: "))
# マイナスならプラスに変換
if number < 0:
number = -number # マイナスを掛けてプラスにする
print(f"絶対値: {number}")
実行結果
数字を入力: -7 絶対値: 7
💡 別解:abs()関数を使う
number = int(input("数字を入力: "))
print(f"絶対値: {abs(number)}")
Pythonには絶対値を求めるabs()関数があります。
問題7:温度による服装アドバイス(中級)
📋 問題
気温を入力してもらい、以下のように表示しましょう:
・25度以上 → 「半袖」
・10度以上25度未満 → 「長袖」
・10度未満 → 「コート」
解答を見る
コード
# 気温を入力
temperature = int(input("気温(℃): "))
# 気温に応じた服装を表示
if temperature >= 25:
print("半袖")
elif temperature >= 10:
print("長袖")
else:
print("コート")
実行結果
気温(℃): 18 長袖
問題8:3段階評価(中級)
📋 問題
点数を入力してもらい、以下のように表示しましょう:
・80点以上 → 「優」
・60点以上80点未満 → 「良」
・60点未満 → 「可」
解答を見る
コード
# 点数を入力
score = int(input("点数: "))
# 点数に応じた評価を表示
if score >= 80:
print("優")
elif score >= 60:
print("良")
else:
print("可")
実行結果
点数: 75 良
問題9:正・負・ゼロの判定(中級)
📋 問題
数字を入力してもらい、正の数なら「正」、負の数なら「負」、0なら「ゼロ」と表示しましょう。
解答を見る
コード
# 数字を入力
number = int(input("数字を入力: "))
# 正・負・ゼロを判定
if number > 0:
print("正")
elif number < 0:
print("負")
else:
print("ゼロ")
実行結果
数字を入力: 0 ゼロ
問題10:2つの数の大小比較(中級)
📋 問題
2つの数字を入力してもらい、どちらが大きいか、または同じかを表示しましょう。
解答を見る
コード
# 2つの数字を入力
num1 = int(input("1つ目の数字: "))
num2 = int(input("2つ目の数字: "))
# 大小を比較
if num1 > num2:
print(f"{num1}の方が大きい")
elif num1 < num2:
print(f"{num2}の方が大きい")
else:
print("2つの数は同じです")
実行結果
1つ目の数字: 15 2つ目の数字: 20 20の方が大きい
問題11:うるう年の判定(上級)
📋 問題
年を入力してもらい、うるう年かどうかを判定しましょう。
うるう年の条件:
・4で割り切れて、100で割り切れない年
・ただし400で割り切れる年はうるう年
解答を見る
コード
# 年を入力
year = int(input("年を入力: "))
# うるう年の判定
if year % 400 == 0:
# 400で割り切れる → うるう年
print(f"{year}年はうるう年です")
elif year % 100 == 0:
# 100で割り切れる(400では割り切れない)→ うるう年ではない
print(f"{year}年はうるう年ではありません")
elif year % 4 == 0:
# 4で割り切れる → うるう年
print(f"{year}年はうるう年です")
else:
# それ以外 → うるう年ではない
print(f"{year}年はうるう年ではありません")
実行結果
年を入力: 2000 2000年はうるう年です
💡 判定の順番が重要
400で割り切れるかを最初にチェックする必要があります。
順番を変えると、正しく判定できなくなります。
問題12:割引計算(上級)
📋 問題
商品の値段と年齢を入力してもらい、以下のルールで割引後の金額を表示しましょう。
・12歳以下: 50%割引
・65歳以上: 30%割引
・それ以外: 割引なし
解答を見る
コード
# 商品の値段と年齢を入力
price = int(input("商品の値段: "))
age = int(input("年齢: "))
# 年齢に応じた割引を計算
if age <= 12:
# 50%割引(価格の50%を支払う)
final_price = price * 0.5
print(f"50%割引! {int(final_price)}円です")
elif age >= 65:
# 30%割引(価格の70%を支払う)
final_price = price * 0.7
print(f"30%割引! {int(final_price)}円です")
else:
# 割引なし
print(f"割引なし。{price}円です")
実行結果
商品の値段: 1000 年齢: 70 30%割引! 700円です
問題13:5段階成績評価(上級)
📋 問題
点数(0-100)を入力してもらい、以下のように評価を表示しましょう。
・90点以上: S
・80点以上: A
・70点以上: B
・60点以上: C
・60点未満: D
解答を見る
コード
# 点数を入力
score = int(input("点数(0-100): "))
# 点数に応じた評価を表示
if score >= 90:
print("評価: S")
elif score >= 80:
print("評価: A")
elif score >= 70:
print("評価: B")
elif score >= 60:
print("評価: C")
else:
print("評価: D")
実行結果
点数(0-100): 85 評価: A
問題14:簡単なログインシステム(上級)
📋 問題
ユーザー名とパスワードを入力してもらい、両方が正しければ「ログイン成功」、どちらかが間違っていれば「ログイン失敗」と表示しましょう。
正しいユーザー名: "admin"
正しいパスワード: "pass123"
解答を見る
コード
# ユーザー名とパスワードを入力
username = input("ユーザー名: ")
password = input("パスワード: ")
# 認証チェック
if username == "admin":
# ユーザー名が正しい場合、パスワードをチェック
if password == "pass123":
print("ログイン成功!")
else:
print("パスワードが間違っています")
else:
print("ユーザー名が間違っています")
実行結果
ユーザー名: admin パスワード: pass123 ログイン成功!
💡 ポイント:入れ子のif文
このコードでは、if文の中にさらにif文を書いています。
これを「入れ子(ネスト)」といいます。
インデントが2段階になっていることに注目してください。
問題15:じゃんけんの判定(上級)
📋 問題
ユーザーに「グー」「チョキ」「パー」のどれかを入力してもらい、コンピューターの手(固定で「グー」)と比較して、勝敗を表示しましょう。
解答を見る
コード
# ユーザーの手を入力
user = input("グー、チョキ、パーのどれか入力: ")
# コンピューターの手(固定)
computer = "グー"
print(f"コンピューターの手: {computer}")
# 勝敗判定
if user == computer:
# 同じ手はあいこ
print("あいこ!")
elif user == "パー":
# グーに対してパーは勝ち
print("あなたの勝ち!")
elif user == "チョキ":
# グーに対してチョキは負け
print("あなたの負け...")
else:
# グー、チョキ、パー以外が入力された場合
print("正しく入力してください")
実行結果
グー、チョキ、パーのどれか入力: チョキ コンピューターの手: グー あなたの負け...
❓ よくある質問
Q1: if文でインデントを忘れるとどうなる?
IndentationErrorというエラーが出ます。
Pythonでは、インデント(字下げ)がプログラムの構造を決めるので、必ず4つのスペースで字下げしましょう。
Q2: == と = の違いは何?
= は代入(値を変数に入れる)
== は比較(2つの値が等しいか調べる)
if文では必ず==を使います。
Q3: elifは必ず書かないとダメ?
いいえ、必須ではありません。
2つの場合に分けるだけなら、if-elseだけで大丈夫です。
3つ以上の場合に分けたい時にelifを使います。
Q4: elseも必ず書かないとダメ?
いいえ、elseも必須ではありません。
条件に当てはまらない時に何もしなくていい場合は、elseを書かなくても大丈夫です。
Q5: if文の中にif文を書ける?
はい、書けます!これを「入れ子(ネスト)」といいます。
ただし、インデントが2段階、3段階と増えるので、書く時は注意が必要です。
🎉 ステップ11のまとめ
✅ このステップで学んだこと
✓ 条件分岐とは「条件によって処理を変える」こと
✓ if文で「もし〇〇なら」という処理が書ける
✓ 条件の後には :(コロン)を付ける
✓ 実行する処理は必ずインデント(字下げ)する
✓ 比較演算子(==, !=, >, <, >=, <=)で条件を作る
✓ == と = の違い(比較 vs 代入)
✓ else で「それ以外」の処理を書く
✓ elif で複数の条件を分岐する
✓ 上から順番にチェックされ、最初にTrueになった条件だけが実行される
💪 次のステップへ
if文の基本をマスターしました!
これで「条件によって処理を変える」プログラムが書けるようになりました。
次のステップでは、論理演算子(and, or, not)を学びます。
複数の条件を組み合わせて、もっと複雑な判定ができるようになりますよ!
学習メモ
Pythonプログラミング基礎 - Step 11