1. はじめに
Pythonでデータを扱う際、データの「正確な表現」を表示したい場面があります。そのときに活躍するのが repr()
関数です。
本記事では、「Python|repr()関数の使い方」というテーマで、初心者にも分かりやすく基本の使い方から実務に役立つ応用例までを解説していきます。
repr()
を使うことで、データの「公式な文字列表現」を取得できます。これは、デバッグやログ出力の際に非常に役立つ関数です。
具体的なコード例や出力結果も丁寧に解説していますので、ぜひ最後までご覧ください。
2. repr()関数の基本的な使い方
repr()関数の役割
repr()
関数は、オブジェクトの開発者向けの表現(=再現可能な表現)を返します。
似た関数に str()
がありますが、こちらはユーザー向けの「読みやすい」表現です。
基本構文
# 基本構文
repr(object)
簡単なコード例
リストや文字列に対して使ってみましょう。
# 例1: リストに対してrepr()を使う
my_list = [1, 2, 3]
print(repr(my_list))
# 例2: 特殊文字を含む文字列
text = "こんにちは\nPython!"
print(repr(text))
実行結果:
[1, 2, 3]
'こんにちは\nPython!'
このように、\n
などの特殊文字も「エスケープ」された形で出力されます。これは、データの正確な内容を知りたいときに便利です。
3. repr()関数のよくある使い方・応用例
ログ出力やデバッグで使う
repr()は、ログやデバッグ時に特に重宝されます。ユーザーに見せるのではなく、開発者自身がデータの詳細を確認したいときに活躍します。
# 例:ログ出力でのrepr()利用
user_input = "Hello\nWorld"
log_message = f"Input received: {repr(user_input)}"
print(log_message)
実行結果:
Input received: 'Hello\nWorld'
このように、改行や特殊文字を明示的に確認できるので、ログの可読性が向上します。
eval()と組み合わせて使う
repr()で取得した文字列は、eval()
を使えば「元のオブジェクト」に復元できる場合があります。
# 例:reprとevalの連携
data = {'x': 10, 'y': 20}
data_repr = repr(data)
# 再構築
restored = eval(data_repr)
print(restored)
実行結果:
{'x': 10, 'y': 20}
このように、reprで保存した文字列をevalで再利用できるため、シリアライズやキャッシュ用途として使うことも可能です(※セキュリティには注意)。
4. Python初心者が注意すべきポイント
str()との違いに注意
str()
とrepr()
は似ていますが、用途が異なります。
text = "こんにちは\n世界"
print(str(text)) # ユーザー向け出力
print(repr(text)) # 開発者向け出力
実行結果:
こんにちは
世界
'こんにちは\n世界'
str()
は改行が実際に出力されますが、repr()
は\n
と表示される点が重要です。
eval()との併用時はセキュリティに注意
eval()
でreprの結果を評価するとき、ユーザー入力や外部データをそのまま使うのは危険です。悪意のあるコードが実行される可能性があります。
5. まとめ|repr()関数を使いこなそう
repr()
は「開発者向け」の正確な文字列表現を返す関数str()
との違いを理解することで、より適切な出力ができる- ログ出力やデバッグ、evalとの連携など、実務での応用が多い
- evalと併用する際はセキュリティに注意が必要
Pythonの学習において、データの中身を「どう見るか」は非常に重要です。
repr()関数を使いこなせるようになると、プログラムの可視化やデバッグが格段にやりやすくなります。
ぜひ、普段のコードや学習時の確認出力にrepr()
を取り入れてみてください。