Pythonの条件文と関数
このトピックを終えると
if/elif/elseで分岐を作成し、defで関数を定義してコードを再利用できるようになります。
条件文 — if, elif, else
プログラムは「状況に応じて異なる動作をする」必要があります。それが条件文です。
python
score = 85
if score >= 90: print("Aランク")elif score >= 80: print("Bランク")elif score >= 70: print("Cランク")else: print("再試験")
# 出力: Bランク上から順番に条件をチェックします。最初にTrueになるブロックを実行し、残りはスキップします。
インデントが文法である
python
# ✅ 正しいif True: print("実行される")
# ❌ IndentationErrorif True:print("エラー!")Pythonは中括弧の代わりに、**インデント(通常はスペース4つ)**でブロックを区切ります。インデントが正しくないと、文法エラーになります。タブとスペースを混ぜてはいけません。
比較と論理演算子
python
# 比較演算子x = 10print(x > 5) # Trueprint(x == 10) # True (同じか)print(x != 10) # False (異なるか)print(x >= 10) # True (以上)
# 論理演算子age = 25has_id = True
if age >= 18 and has_id: print("入場可能")
if age < 18 or not has_id: print("入場不可")| 演算子 | 意味 | 例 |
|---|---|---|
and | 両方True | A and B |
or | どちらかTrue | A or B |
not | 反転 | not A |
関数 — def
同じコードを何度も書く代わりに、関数にまとめて名前を付けます。
python
def greet(name): print(f"こんにちは、{name}さん!")
greet("キム・フン") # こんにちは、キム・フンさん!greet("イ・ス") # こんにちは、イ・スさん!def 関数名(引数): → インデントされたブロックが関数の本体です。関数は呼び出されるまで実行されません。
return — 結果を返す
python
def add(a, b): return a + b
result = add(3, 5)print(result) # 8
# `return`がない場合は`None`を返すdef say_hello(): print("hello")
x = say_hello() # "hello"と出力print(x) # Noneprint()は画面に表示するもので、returnは値を返すものです。全く異なる役割です。
デフォルト値とキーワード引数
python
def power(base, exponent=2): return base ** exponent
print(power(3)) # 9 (exponent=2のデフォルト値を使用)print(power(3, 3)) # 27 (exponent=3に指定)
# キーワード引数 — 順序は関係ないprint(power(exponent=4, base=2)) # 16デフォルト値を持つ引数は、呼び出すときに省略できます。
関数内の変数 — スコープ
python
x = 10 # グローバル変数
def foo(): x = 20 # ローカル変数 — 関数内でのみ有効 print(x) # 20
foo()print(x) # 10 — グローバルxは変わらない関数内で作成した変数は、関数が終了すると消えます。関数外の変数と同じ名前でも、別の変数です。これをスコープと呼びます。
条件文 + 関数 = ロジック
python
def classify_bmi(weight, height): bmi = weight / (height ** 2)
if bmi < 18.5: return "低体重" elif bmi < 25: return "正常" elif bmi < 30: return "過体重" else: return "肥満"
print(classify_bmi(70, 1.75)) # 正常print(classify_bmi(90, 1.70)) # 過体重条件文で分岐し、関数で再利用できるようにする。この2つを組み合わせることで、ほとんどのプログラムのロジックを表現できます。