2026年1月29日木曜日

Pythonの残りのキーワード9つについて

 Pythonの残りのキーワード9つについて、それぞれの役割と具体的な使い方を整理しました。

これらはプログラムの制御フロー、デバッグ、リソース管理など、Pythonを使いこなす上で欠かせない要素ばかりです。


1. global

関数の中から、関数の外(グローバルスコープ)で定義された変数を書き換えたいときに使います。

  • 使い方: global 変数名 と宣言します。

  • 注意点: 多用するとコードの可読性が下がるため、基本的には戻り値(return)を使うのが推奨されます。

Python
count = 0

def increment():
    global count
    count += 1

increment()
print(count)  # 結果: 1

2. assert

「この時点では必ずこうなっているはずだ」という条件をチェックするために使います。主にデバッグ用です。

  • 使い方: assert 条件, "エラーメッセージ"

  • 機能: 条件が False の場合、AssertionError を発生させます。

Python
def apply_discount(price, discount):
    final_price = price - discount
    assert final_price >= 0, "価格がマイナスになっています"
    return final_price

print(apply_discount(100, 20)) # 正常
# print(apply_discount(100, 150)) # AssertionError

3. is

2つのオブジェクトが**「同一(メモリ上の同じ場所にあるか)」**を判定します。

  • == との違い: == は値が同じかを判定しますが、is は実体が同じかを判定します。

  • 主な用途: None かどうかのチェックによく使われます(if x is None:)。

Python
a = [1, 2, 3]
b = [1, 2, 3]
c = a

print(a == b)  # True (値が同じ)
print(a is b)  # False (別のリストオブジェクト)
print(a is c)  # True (全く同じものを指している)

4. not

論理値を反転させます(真なら偽、偽なら真)。

  • 使い方: if not 条件: のように、否定のロジックを作るときに使います。

Python
is_logged_in = False

if not is_logged_in:
    print("ログインしてください")

5. pass

「何もしない」ことを示すキーワードです。

  • 使い所: 文法上、何か書かなければいけないけれど、処理は後で書きたい(中身を空にしておきたい)場合に使います。

Python
def future_function():
    pass  # 後で実装する予定

class MyEmptyClass:
    pass

6. raise

意図的にエラー(例外)を発生させます。

  • 使い方: raise エラーの種類("メッセージ")

  • 機能: 不適切なデータが渡されたときなどに、プログラムを停止させて警告します。

Python
def check_age(age):
    if age < 0:
        raise ValueError("年齢にマイナスは指定できません")
    return age

7. while

条件が True である間、処理を繰り返します。

  • 使い方: while 条件:

  • 機能: 繰り返しの回数が決まっていない場合に便利です。

Python
count = 0
while count < 3:
    print(f"カウント: {count}")
    count += 1

8. with

ファイルの読み書きなど、**「開始と終了の処理が必要なもの」**を安全に管理します。

  • 利点: with ブロックを抜けると自動的にファイルを閉じてくれるので、クローズ忘れを防げます。

Python
with open("test.txt", "w") as f:
    f.write("Hello Python")
# ここで自動的にファイルが閉じられる

9. yield

ジェネレータ関数を作成するときに使います。

  • 機能: 関数の実行を一時停止し、値を返します。次に呼ばれたときは、その停止した箇所から再開します。

  • 利点: 大量のデータを一度にメモリに乗せず、一つずつ処理できるため効率的です。

Python
def number_generator():
    yield 1
    yield 2
    yield 3

for num in number_generator():
    print(num)


0 件のコメント:

コメントを投稿