はじめに
単純にprint()
を使うだけでもに十分のケースもありですが、少し工夫を加えることでより読みやすく、簡潔にコードを書くことができます。
この記事では、print
の便利なオプションやフォーマット方法などわかりやすくまとめました。
1. print()
の基本とsep
・end
の活用
複数の値を区切る文字列を指定する: sep
print()
では、複数の値を指定したときにデフォルトで空白(スペース)で区切られますが、sep
引数でこれを変更できます。
print("Python", "Java", "C++", sep=", ")
# 出力: Python, Java, C++
出力の最後に追加する文字を指定する: end
print()
はデフォルトで出力の最後に改行を追加しますが、改行の代わりにend
引数でカスタマイズできます。
print("Hello", end=" ")
print("World")
# 出力: Hello World
2. f文字列で簡単フォーマット
変数名と値を同時に表示する: 変数=
Python 3.8以降では、f文字列で変数名とその値を一緒に表示することができます。デバッグ時にも便利です。
x = 42
y = 3.14
print(f"{x=}, {y=}")
# 出力: x=42, y=3.14
オブジェクトの状態や特殊文字を表示する: 変数!r
f文字列で!rを使うと、repr()
による表現を簡単に挿入できます。
repr()
は、オブジェクトを文字列として表現するための標準メソッドです。
repr()を使うことで、オブジェクトの状態や特殊文字を確認できます。
# 文字列変数に特殊文字を含めた例
text = "Hello\nWorld"
# 通常の表示
print(f"通常の表示: {text}")
# 出力:
# 通常の表示: Hello
# World
# repr()による表示
print(f"repr表示: {text!r}")
# 出力:
# repr表示: 'Hello\nWorld'
数値のフォーマット
f文字列を使うと、数値を整形して表示することも簡単です。
小数点以下の桁数を指定
pi = 3.14159
print(f"{pi:.2f}") # 小数点以下2桁
# 出力: 3.14
整数を特定の桁数に揃える
num = 7
print(f"{num:03d}") # 3桁でゼロ埋め
# 出力: 007
文字列の幅を揃える
table = {'John Smith': 10, 'Taro Tanaka': 20, 'J': 30}
for name, age in table.items():
print(f'{name:15} ==> {age}') # 名前は10文字分の幅を確保
# 出力結果
# John Smith ==> 10
# Taro Tanaka ==> 20
# J ==> 30
3. まとめて複数行を出力
一度に複数行のデータを整形して出力したい場合、join()
を使うのが便利です。
lines = ["Line 1", "Line 2", "Line 3"]
print("\n".join(lines))
# 出力:
# Line 1
# Line 2
# Line 3
4. pprintで複雑なデータ構造を見やすく表示
標準のpprint
モジュールを使うと、ネストされた辞書やリストなどの複雑なデータ構造を整形して見やすく表示できます。
from pprint import pprint
data = {
"users": [
{"name": "John Smith", "age": 25},
{"name": "Taro Tanaka", "age": 30},
{"name": "Takeru Yamada", "age": 35}
]
}
pprint(data)
# 出力:
# {'users': [{'age': 25, 'name': 'John Smith'},
# {'age': 30, 'name': 'Taro Tanaka'},
# {'age': 35, 'name': 'Takeru Yamada'}]}
pprintを使わない場合だと一行で表示されてしまう。
print(data)
# 出力:
# {'users': [{'name': 'John Smith', 'age': 25}, {'name': 'Taro Tanaka', 'age': 30}, {'name': 'Takeru Yamada', 'age': 35}]}
まとめ
標準出力を少し工夫するだけで、コードがより読みやすく、保守性も向上します!ぜひ試してみてください。