Python のキーワードは、Python インタプリタによって特別な意味を持つ予約語です。これらは変数名、関数名、クラス名などとして使用することはできません。キーワードは Python プログラムの構造とロジックを定義するために不可欠です。
以下に Python のキーワードを一つずつ、具体的な使い方と例を含めて解説します。
False
ブール値の偽を表します。True
とともにブール型 (bool
) のリテラルです。
使い方:
条件式の結果や、ブール値を返す関数の戻り値として使用されます。
例:
is_active = False
if not is_active:
print("ユーザーはアクティブではありません。")
# 0 は False と評価される
if 0:
print("これは表示されません")
else:
print("0 は False と評価されます。")
None
値が存在しないことを表す特殊な定数です。他の言語の null
や nil
に似ています。NoneType
型の唯一のインスタンスです。
使い方:
変数の初期値、関数の戻り値(何も返さない場合)、オプションの引数のデフォルト値などに使用されます。
例:
result = None
def get_user_info(user_id):
if user_id == 1:
return {"name": "Alice", "age": 30}
else:
return None # ユーザーが見つからない場合
user_data = get_user_info(2)
if user_data is None:
print("ユーザーが見つかりませんでした。")
# 変数が None かどうかをチェック
if result is None:
print("結果はまだ設定されていません。")
True
ブール値の真を表します。False
とともにブール型 (bool
) のリテラルです。
使い方:
条件式の結果や、ブール値を返す関数の戻り値として使用されます。
例:
is_logged_in = True
if is_logged_in:
print("ログイン済みです。")
# 1 は True と評価される
if 1:
print("1 は True と評価されます。")
and
論理積演算子です。両方のオペランドが True
の場合に True
を返します。短絡評価を行います。
使い方:
複数の条件を同時に満たす必要がある場合に利用します。
例:
age = 25
has_license = True
if age >= 18 and has_license:
print("運転可能です。")
# 短絡評価の例
# func_b() は func_a() が False を返した場合、実行されない
def func_a():
print("func_a 実行")
return False
def func_b():
print("func_b 実行")
return True
if func_a() and func_b():
print("両方True")
else:
print("どちらかがFalseまたは両方False")
as
主に import
文でモジュールやオブジェクトに別名を与えるため、また with
文でコンテキストマネージャのオブジェクトを特定の変数に割り当てるために使用されます。
使い方:
モジュールのインポート時に短い名前を付ける
コンテキストマネージャでリソースを扱う
例:
# import で別名を与える
import math as m
print(m.sqrt(16))
# with 文でコンテキストマネージャを使用
# ファイルを自動的に閉じることができる
with open("my_file.txt", "w") as f:
f.write("Hello, world!")
assert
デバッグ時に条件が真であることを確認するために使用されます。条件が偽の場合、AssertionError
を発生させます。
使い方:
プログラムの特定の地点で、特定の条件が満たされていることを保証したい場合に利用します。開発段階でのエラーチェックに有効です。
例:
def divide(a, b):
assert b != 0, "0で割ることはできません。" # b が 0 の場合、エラーメッセージを表示して停止
return a / b
print(divide(10, 2))
# print(divide(10, 0)) # AssertionError が発生する
async
非同期関数を定義するために使用されます。Python 3.5 以降で導入された asyncio
ライブラリと組み合わせて使用され、コルーチン(coroutine)を定義します。
使い方:
ネットワークI/OやファイルI/Oなど、時間のかかる操作を非同期に行い、プログラムの応答性を向上させるために使用します。
例:
import asyncio
async def fetch_data():
print("データ取得を開始...")
await asyncio.sleep(2) # 2秒間待機(非同期)
print("データ取得が完了しました。")
return {"data": "some_data"}
async def main():
data = await fetch_data()
print(f"取得したデータ: {data}")
# Python 3.7 以降では asyncio.run() を使用
# asyncio.run(main())
await
async
関数内でコルーチン(または awaitable オブジェクト)の完了を待機するために使用されます。await
は非同期操作が完了するまで実行を一時停止し、他のタスクが実行されることを可能にします。
使い方:
async 関数内で、時間のかかる非同期処理の結果を待つために使用します。
例:
import asyncio
async def delay_message(delay, message):
await asyncio.sleep(delay)
print(message)
async def main_await_example():
print("開始")
await delay_message(1, "1秒後メッセージ")
await delay_message(0.5, "0.5秒後メッセージ")
print("終了")
# asyncio.run(main_await_example())
break
ループ(for
ループまたは while
ループ)の実行を即座に終了させます。
使い方:
特定の条件が満たされたときに、ループを途中で抜けたい場合に使用します。
例:
for i in range(10):
if i == 5:
print("5になったのでループを終了します。")
break
print(i)
count = 0
while True:
print(f"カウント: {count}")
count += 1
if count >= 3:
break
class
新しいクラス(オブジェクトのブループリント)を定義するために使用されます。
使い方:
オブジェクト指向プログラミングにおいて、データとそれに関連する振る舞いをカプセル化するために使用します。
例:
class Dog:
def __init__(self, name, breed):
self.name = name
self.breed = breed
def bark(self):
print(f"{self.name} がワンワンと吠えます!")
my_dog = Dog("ポチ", "柴犬")
my_dog.bark()
print(f"犬の名前: {my_dog.name}, 犬種: {my_dog.breed}")
continue
ループ(for
ループまたは while
ループ)の現在のイテレーションをスキップし、次のイテレーションに進みます。
使い方:
ループ内で特定の条件を満たす要素を処理しない場合や、次のイテレーションにすぐに進みたい場合に使用します。
例:
for i in range(10):
if i % 2 == 0: # 偶数の場合はスキップ
continue
print(i) # 奇数のみ表示される
def
新しい関数を定義するために使用されます。
使い方:
コードの再利用性を高め、プログラムをモジュール化するために使用します。
例:
def greet(name):
"""指定された名前に挨拶します。"""
print(f"こんにちは、{name}さん!")
greet("太郎")
def add(a, b):
return a + b
sum_result = add(5, 3)
print(f"合計: {sum_result}")
del
オブジェクトの削除、または変数へのバインドを解除するために使用されます。これにより、参照カウントが減少し、オブジェクトがガベージコレクションの対象となる可能性があります。
使い方:
不要になったオブジェクトをメモリから解放したい場合(Pythonのメモリ管理は自動で行われるため、通常は明示的に使うことは少ない)、リストや辞書から要素を削除する場合などに使用します。
例:
my_list = [1, 2, 3, 4, 5]
del my_list[2] # インデックス2の要素(3)を削除
print(my_list) # 出力: [1, 2, 4, 5]
my_dict = {"a": 1, "b": 2}
del my_dict["a"] # キー "a" のエントリを削除
print(my_dict) # 出力: {'b': 2}
x = 10
del x # 変数 x のバインドを解除
# print(x) # NameError が発生する
elif
if
文に続く追加の条件をテストするために使用されます。
使い方:
複数の排他的な条件をチェックし、それぞれの条件に応じて異なる処理を行いたい場合に使用します。
例:
score = 75
if score >= 90:
print("A")
elif score >= 80:
print("B")
elif score >= 70:
print("C")
else:
print("D")
else
if
文または elif
文のどの条件も満たされなかった場合に実行されるコードブロックを定義します。また、for
ループや while
ループに付随して、ループが break
文で終了しなかった場合に実行されるブロックを定義することもできます。
使い方:
条件分岐の最終的なフォールバック
ループが正常に完了したことを示す
例:
# if-else
age = 15
if age >= 18:
print("成人です。")
else:
print("未成年です。")
# for-else (ループが break されなかった場合に実行)
for i in range(3):
print(i)
else:
print("ループが正常に完了しました。") # これは実行される
for i in range(3):
if i == 1:
break
print(i)
else:
print("ループが正常に完了しました。") # これは実行されない
except
try
ブロック内で発生した例外を捕捉し、処理するために使用されます。
使い方:
エラーが発生する可能性のあるコードを安全に実行し、エラーが発生した場合にプログラムがクラッシュしないようにするためのエラーハンドリングに使用します。
例:
try:
num = int(input("数値を入力してください: "))
result = 10 / num
print(f"結果: {result}")
except ValueError:
print("無効な入力です。数値を入力してください。")
except ZeroDivisionError:
print("0で割ることはできません。")
except Exception as e: # その他の全ての例外を捕捉
print(f"予期せぬエラーが発生しました: {e}")
finally
try
ブロックと except
ブロックの後に、常に実行されるコードブロックを定義します。例外が発生したかどうかに関わらず実行されます。
使い方:
ファイルハンドルを閉じたり、データベース接続を解放したりするなど、リソースのクリーンアップ処理を行うために使用します。
例:
file = None
try:
file = open("non_existent_file.txt", "r")
content = file.read()
print(content)
except FileNotFoundError:
print("ファイルが見つかりませんでした。")
finally:
if file:
file.close()
print("ファイルを閉じました。")
for
シーケンス(リスト、タプル、文字列、辞書など)の要素を反復処理するために使用されます。
使い方:
コレクション内の各項目に対して同じ操作を実行したい場合に使用します。
例:
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
print(fruit)
# 辞書を反復処理
person = {"name": "Alice", "age": 30}
for key, value in person.items():
print(f"{key}: {value}")
from
import
文の一部として、モジュールから特定の属性(関数、クラス、変数など)をインポートするために使用されます。
使い方:
モジュール全体ではなく、そのモジュール内の特定の要素だけをインポートしたい場合に利用します。名前空間の衝突を避けるのにも役立ちます。
例:
# math モジュールから sqrt 関数だけをインポート
from math import sqrt
print(sqrt(25))
# from math import * は、全ての要素をインポートするが、推奨されない
global
現在のスコープ外にあるグローバル変数を参照または変更するために使用されます。
使い方:
関数内でグローバル変数を変更する必要がある場合に利用します。ただし、グローバル変数の乱用はコードの可読性や保守性を低下させる可能性があるため、注意が必要です。
例:
global_var = 10
def modify_global():
global global_var # グローバル変数を参照
global_var += 5
print(f"関数内のグローバル変数: {global_var}")
modify_global()
print(f"関数外のグローバル変数: {global_var}")
if
条件が真である場合にのみコードブロックを実行するために使用されます。
使い方:
プログラムの実行フローを条件に基づいて制御する場合に利用します。
例:
temperature = 28
if temperature > 25:
print("暑いですね。")
is_sunny = True
if is_sunny:
print("晴れています。")
import
他のモジュールやパッケージのコードを現在のスクリプトに取り込むために使用されます。
使い方:
外部のライブラリや自作のモジュールにある機能を利用したい場合に利用します。
例:
import math
print(math.pi)
import random
print(random.randint(1, 10))
in
シーケンス(リスト、タプル、文字列など)内に要素が存在するかどうかをテストするために使用されます。また、for
ループでも使用されます。
使い方:
メンバーシップテストや、イテレーションの際に利用します。
例:
my_list = [1, 2, 3, 4, 5]
if 3 in my_list:
print("3はリストに含まれています。")
my_string = "hello world"
if "world" in my_string:
print("文字列 'world' が含まれています。")
# for ループでの使用例は `for` の項を参照
is
2つのオブジェクトが同じオブジェクトであるかどうか(つまり、メモリ内の同じ場所を指しているか)をテストするために使用されます。
使い方:
オブジェクトの同一性を確認したい場合に利用します。値の同等性(==)とは異なります。
例:
a = [1, 2, 3]
b = a # b は a と同じオブジェクトを参照
c = [1, 2, 3] # c は a とは異なる新しいオブジェクト
print(a is b) # True
print(a is c) # False (値は同じだが、異なるオブジェクト)
print(a == c) # True (値は同じ)
x = None
if x is None:
print("x は None です。")
lambda
匿名(無名)関数を作成するために使用されます。
使い方:
一度だけ使用される簡単な関数や、引数として関数を渡す必要がある場合(例: map, filter, sorted の key 引数)に便利です。
例:
# 通常の関数
def add_one(x):
return x + 1
print(add_one(5))
# lambda 関数
add_one_lambda = lambda x: x + 1
print(add_one_lambda(5))
# sorted の key 引数で利用
students = [("Alice", 20), ("Bob", 25), ("Charlie", 18)]
# 年齢でソート
sorted_students = sorted(students, key=lambda student: student[1])
print(sorted_students)
nonlocal
ネストされた関数内で、Enclosing Scope (囲むスコープ) の変数を参照または変更するために使用されます。グローバル変数ではないが、現在の関数よりも外側のスコープにある変数にアクセスする場合に利用します。
使い方:
クロージャ内で、外側の関数のローカル変数を変更したい場合に利用します。
例:
def outer_function():
x = 10 # outer_function のローカル変数
def inner_function():
nonlocal x # outer_function の x を参照
x += 5
print(f"inner_function 内の x: {x}")
inner_function()
print(f"outer_function 内の x: {x}")
outer_function()
not
論理否定演算子です。オペランドが True
であれば False
を、False
であれば True
を返します。
使い方:
ブール値を反転させたい場合や、条件を否定したい場合に使用します。
例:
is_admin = False
if not is_admin:
print("管理者ではありません。")
is_empty = []
if not is_empty: # 空のリストは False と評価される
print("リストは空です。")
or
論理和演算子です。いずれかのオペランドが True
であれば True
を返します。短絡評価を行います。
使い方:
複数の条件のいずれかが満たされれば良い場合に利用します。
例:
temperature = 30
is_raining = False
if temperature > 28 or is_raining:
print("傘を持っていくか、涼しい場所を探しましょう。")
# 短絡評価の例
def func_c():
print("func_c 実行")
return True
def func_d():
print("func_d 実行")
return False
if func_c() or func_d():
print("どちらかがTrueまたは両方True")
else:
print("両方False") # func_d() は実行されない
pass
何もしないことを示すヌル操作です。構文的にステートメントが必要だが、実際に何も実行したくない場合にプレースホルダーとして使用されます。
使い方:
空の関数やクラスを定義する場合
条件分岐やループのブロックを一時的に空にする場合
例:
def my_function():
pass # 後で実装する予定
class MyClass:
pass # 後でメンバーを追加する予定
if True:
pass # 何もしない
raise
例外を意図的に発生させるために使用されます。
使い方:
特定の条件が満たされたときにエラー状態をプログラムに通知したい場合や、カスタム例外を発生させたい場合に利用します。
例:
def validate_age(age):
if age < 0:
raise ValueError("年齢は負の値にすることはできません。")
if age > 150:
raise ValueError("年齢が大きすぎます。")
print(f"年齢: {age}")
try:
validate_age(-5)
except ValueError as e:
print(f"エラー: {e}")
try:
validate_age(200)
except ValueError as e:
print(f"エラー: {e}")
return
関数から値を返し、関数の実行を終了するために使用されます。
使い方:
関数の計算結果を呼び出し元に渡したい場合に利用します。
例:
def multiply(a, b):
return a * b
result = multiply(4, 6)
print(f"積: {result}")
def say_hello():
print("Hello!")
return # 何も返さない場合は return のみでも良い (None が返される)
ret_val = say_hello()
print(f"say_hello の戻り値: {ret_val}")
try
例外が発生する可能性のあるコードブロックを定義するために使用されます。通常、except
および/または finally
と組み合わせて使用されます。
使い方:
安全にコードを実行し、エラーハンドリングを可能にするために使用します。
例:
# 例は `except` と `finally` の項を参照
try:
value = int("abc") # ValueError が発生する
print(value)
except ValueError:
print("数値を変換できませんでした。")
while
条件が真である限り、コードブロックを繰り返し実行するために使用されます。
使い方:
条件が満たされている間、特定の処理を繰り返したい場合に使用します。
例:
count = 0
while count < 5:
print(count)
count += 1
with
コンテキストマネージャを使用するためのキーワードです。リソースの取得と解放を自動的に処理します。
使い方:
ファイル操作、データベース接続、ロックなど、リソースの管理を簡素化し、エラー発生時にも確実にリソースが解放されるようにするために使用します。
例:
# ファイルを自動で閉じる
with open("my_new_file.txt", "w") as f:
f.write("これは with 文を使って書かれました。\n")
f.write("自動的にファイルが閉じられます。\n")
print("ファイル書き込み完了。")
yield
ジェネレータ関数を定義するために使用されます。関数が yield
を含む場合、それはジェネレータとなり、イテレータを返します。yield
は値を一時停止して返し、次に呼び出されたときにその状態から実行を再開します。
使い方:
大きなデータセットを一度にメモリにロードせずに処理したい場合や、無限のシーケンスを生成したい場合に便利です。
例:
def countdown(n):
print("カウントダウン開始")
while n > 0:
yield n
n -= 1
print("カウントダウン終了")
# ジェネレータオブジェクトが返される
for num in countdown(3):
print(f"現在のカウント: {num}")
# 出力:
# カウントダウン開始
# 現在のカウント: 3
# 現在のカウント: 2
# 現在のカウント: 1
# カウントダウン終了
0 件のコメント:
コメントを投稿