ステップ11:if文で条件分岐

🔀 ステップ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

📋 過去のメモ一覧
#artnasekai #学習メモ
LINE