PYTHON MEBY

Pythonでprintデバッグ

この記事では、Pythonにおけるprint関数を使ったデバッグ方法について解説します。変数の値を確認したり、コードの実行順序をトレースしたりする際に役立つprint関数の基本的な使い方から、より高度なデバッグテクニックまでを網羅します。

目次

print()の基本的な使い方

最も基本的なデバッグ方法は、print()関数を使って変数の値を出力することです。変数の名前をprint()関数の引数に渡すことで、その変数の現在の値をコンソールに出力できます。

x = 10
y = 5
print(x)
print(y)
print(x + y)

このコードを実行すると、コンソールに10、5、15と出力されます。これにより、変数の値が期待通りであることを確認できます。

name = "Alice"
age = 30
print(f"私の名前は{name}です。年齢は{age}歳です。")

f文字列を使うと、より読みやすい出力を作成できます。

データ型の確認

print()関数と組み合わせてtype()関数を使うことで、変数のデータ型を確認できます。

x = 10
print(type(x)) # <class 'int'>
y = "hello"
print(type(y)) # <class 'str'>
z = [1, 2, 3]
print(type(z)) # <class 'list'>

これにより、予期しないデータ型によってエラーが発生するのを防ぐことができます。

複雑なデータ構造の確認

辞書やリストなどの複雑なデータ構造の確認には、print()関数を複数回使用したり、ループ処理と組み合わせたりすると便利です。

my_dict = {"name": "Bob", "age": 25, "city": "Tokyo"}
for key, value in my_dict.items():
    print(f"{key}: {value}")

このコードは、辞書のキーと値をそれぞれ出力します。

条件分岐の確認

条件分岐が意図通りに動作しているかを確認するために、print()関数を使って各条件の真偽値を出力することができます。

x = 10
if x > 5:
    print("xは5より大きいです")
else:
    print("xは5以下です")

このコードは、xの値に応じて異なるメッセージを出力します。

ループ処理の確認

ループ処理が何回実行されているか、また、ループ変数の値が期待通りであるかをprint()関数を使って確認できます。

for i in range(5):
    print(f"ループ回数: {i}")

このコードは、ループの各回数の番号を出力します。

関数内でのデバッグ

関数内で変数の値を確認したい場合は、関数内部にprint()文を挿入します。

def my_function(a, b):
    result = a + b
    print(f"a: {a}, b: {b}, result: {result}")
    return result
my_function(3, 5)

このコードは、関数の引数と戻り値を出力します。

print()の代替手段

より高度なデバッグには、pdb(Python Debugger)やIDEのデバッガなどのツールが有効です。ただし、print()関数は手軽に使えるため、初期段階のデバッグには非常に有効です。

関連記事