Python長い文字列・複数行文字列の書き方完全ガイド【初心者向け】
Pythonで長い文字列や複数行にわたる文字列を扱う際、どの方法を使えばよいか迷ったことはありませんか?本記事では、Pythonにおける長い文字列と複数行文字列の書き方を、実用的なサンプルコードとともに詳しく解説します。
目次
複数行文字列とは
複数行文字列とは、改行文字を含む文字列のことで、HTMLテンプレート、SQLクエリ、長いメッセージなどを記述する際に頻繁に使用されます。Pythonでは複数の方法で複数行文字列を作成できます。
トリプルクォート(”””)を使った方法
最も一般的で推奨される方法は、ダブルクォート3つ(”””)を使用する方法です。
# 基本的な複数行文字列
message = """これは複数行の
文字列の例です。
改行文字も含まれます。"""
print(message)
出力結果:
これは複数行の
文字列の例です。
改行文字も含まれます。
HTMLテンプレートの例
html_template = """
<!DOCTYPE html>
<html>
<head>
<title>サンプルページ</title>
</head>
<body>
<h1>ようこそ</h1>
<p>これはサンプルページです。</p>
</body>
</html>
"""
print(html_template)
シングルクォートのトリプル(”’)を使った方法
シングルクォート3つ(”’)も同様に使用できます。ダブルクォートが文字列内に多く含まれる場合に便利です。
# シングルクォートのトリプルを使用
text = '''この文字列では
"ダブルクォート"を
自由に使えます。'''
print(text)
文字列の連結による長い文字列の作成
括弧内で文字列を連結することで、長い文字列を見やすく分割できます。
# 文字列の連結
long_message = (
"これは非常に長い文字列で、"
"複数行に分けて書くことで"
"可読性を向上させています。"
)
print(long_message)
出力結果:
これは非常に長い文字列で、複数行に分けて書くことで可読性を向上させています。
プラス演算子を使った連結
# +演算子による連結
sql_query = (
"SELECT name, age, email "
+ "FROM users "
+ "WHERE age > 18 "
+ "ORDER BY name ASC"
)
print(sql_query)
バックスラッシュを使った行継続
バックスラッシュ(\)を使って行を継続することもできます。
# バックスラッシュによる行継続
long_string = "これは非常に長い文字列で、" \
"バックスラッシュを使って" \
"複数行に分けています。"
print(long_string)
f文字列(f-string)での複数行文字列
Python 3.6以降では、f文字列と組み合わせて動的な複数行文字列を作成できます。
# 変数の定義
name = "田中"
age = 25
city = "東京"
# f文字列による複数行文字列
profile = f"""
ユーザー情報:
名前: {name}
年齢: {age}歳
住所: {city}
"""
print(profile)
出力結果:
ユーザー情報:
名前: 田中
年齢: 25歳
住所: 東京
実際の使用例とベストプラクティス
SQLクエリの記述
# データベースクエリの例
def get_user_data(user_id):
query = """
SELECT
u.id,
u.name,
u.email,
p.phone_number
FROM users u
LEFT JOIN profiles p ON u.id = p.user_id
WHERE u.id = %s
AND u.active = TRUE
"""
return query, (user_id,)
JSONテンプレートの作成
import json
def create_api_response(status, message, data=None):
response_template = f"""
{{
"status": "{status}",
"message": "{message}",
"timestamp": "2024-01-01T12:00:00Z",
"data": {json.dumps(data) if data else "null"}
}}
"""
return response_template
エラーメッセージの作成
def validation_error_message(field_name, value):
error_msg = f"""
バリデーションエラーが発生しました:
フィールド名: {field_name}
入力値: {value}
有効な値を入力してください。
詳細についてはドキュメントを参照してください。
"""
return error_msg.strip()
よくある質問とトラブルシューティング
Q1: インデントが崩れてしまう場合の対処法
# インデントを含む複数行文字列
def create_code_snippet():
code = """
def hello_world():
print("Hello, World!")
return True
"""
# textwrapモジュールを使用してインデントを調整
import textwrap
return textwrap.dedent(code).strip()
Q2: 先頭や末尾の空白行を削除したい場合
# strip()メソッドを使用
message = """
これは複数行の文字列です。
先頭と末尾の空白行が削除されます。
""".strip()
print(repr(message)) # 実際の内容を確認
Q3: 特殊文字を含む場合の注意点
# rawストリング(r""")を使用
file_path = r"""
C:\Users\username\Documents\
python_projects\my_app\
main.py
"""
print(file_path.strip())
まとめ
Pythonで長い文字列や複数行文字列を扱う際は、用途に応じて適切な方法を選択することが重要です。
- トリプルクォート(”””): 最も一般的で推奨される方法
- 文字列連結: 改行を含まない長い文字列に適している
- f文字列: 動的な内容を含む複数行文字列に最適
- rawストリング: エスケープ文字を多く含む場合に便利
これらの方法を適切に使い分けることで、読みやすく保守性の高いPythonコードを書くことができます。特にWebアプリケーション開発やデータ処理において、複数行文字列の活用は必須のスキルとなるでしょう。
■「らくらくPython塾」が切り開く「呪文コーディング」とは?
■プロンプトだけでオリジナルアプリを開発・公開してみた!!
■AI時代の第一歩!「AI駆動開発コース」はじめました!
テックジム東京本校で先行開始。
■テックジム東京本校
「武田塾」のプログラミング版といえば「テックジム」。
講義動画なし、教科書なし。「進捗管理とコーチング」で効率学習。
より早く、より安く、しかも対面型のプログラミングスクールです。
<短期講習>5日で5万円の「Pythonミニキャンプ」開催中。
<月1開催>放送作家による映像ディレクター養成講座
<オンライン無料>ゼロから始めるPython爆速講座



