Python: 文の途中で改行し、複数行で記述する方法

プログラミングでは、1つの実行単位を文と言います。 基本的に1つの文は1行で記述しますが、 長くて見にくい場合は文の途中で改行して複数行で記述することも可能です。 どのように複数行で記述するかはプログラミング言語によって異なります。

Pythonでは文を途中で改行する場合、改行したい行の末尾に円記号「\」 (又はバックスラッシュ)をつけ、 続けて次の行を入力します。 ただし、()・[]・{}で囲った部分は「\」記号を付けることなく 改行して複数行で記述できます。 なのでリストやディクショナリなどのコレクションの場合は 「\」記号は必要ありません。

文字列を途中で改行

文字列を途中で改行します。 改行する箇所に円記号「\」(又はバックスラッシュ)を記述。

# 文字列を途中で改行
s = "hello \
world"

print(s) # hello world

記述は複数行ですが、変数sには1行の文字列として格納されています。

if文を途中で改行

if文でandやorなどの論理演算子を使うと、 条件式が長くなることがあります。 その場合は途中で改行して複数行にした方が見やすくなります。
次のサンプルコードでは、 条件式の途中にandの後で「\」記号を入れて改行しています。

student_number = 8

# if文の途中で改行
if student_number >= 5 and \
	student_number < 10 :
	print("Hit")

但し、条件式を丸括弧()で囲んだ場合は「\」記号を付けずに 改行することが可能です。

# 「\」なしで改行できる
if (student_number >= 5 and
	student_number < 10) :
	print("Hit")
次のコレクションの説明とも繋がるのですが、 Pythonの言語仕様として丸括弧()、角括弧[]、波括弧{}で囲った部分は「\」記号を付けることなく 改行できます。 ですからif文の条件式を丸括弧()で囲った場合は「\」記号を付けずに 複数行で記述できます。

リスト(コレクション)の値は円記号「\」が不要

上で説明したように、()、[]、{} で囲った部分は「\」を付けずに改行できます
ですから()を使うタプル、[]を使うリスト、{}を使うディクショナリなどの コレクションの値を複数行で記述する場合、「\」記号は不要です。

次のサンプルコードではリストとディクショナリの値を複数行で記述しています。 いずれも「\」記号は不要です。

# リスト
arr = [0, 1, 2, 3, 4, 
		5, 6, 7, 8]

print(arr) # [0, 1, 2, 3, 4, 5, 6, 7, 8]

# ディクショナリ
d = {"a": 0, 
	"b": 1, 
	"c": 2}

print(d) # {'a': 0, 'b': 1, 'c': 2}

print()の場合は必要?不要?

print()関数を使って何らかの情報を出力する時、 ()の内容を複数行で記述する場合に「\」記号が必要なのか不要なのかを検証してみます。

print()の場合は丸括弧がありますから、 「\」記号を付けることなく改行できるはずです。
次のコードでは計算式を複数行で記述していますが、 問題なく実行できます。

print(1 + 2 
	+ 3)

# 実行結果
6

次は文字列文字列ですが、 シングルクォート(')やダブルクォート(")を使って文字列を 複数行で記述する場合は「\」記号が必要です。

まずはエラーの例

# エラーとなります。
print("hello 
world")

次のように「\」記号を付けることで正常に実行できます。

print("hello \
world")

# 実行結果
hello world

次のように文字列変数を結合する場合は「\」記号は不要です。

s1 = "hello "
s2 = "world"

print(s1 
	+ s2)

# 実行結果
hello world

上の検証からわかること。
「丸括弧()の中であっても、 シングルクォートやダブルクォートを使った文字列の場合は 「\」記号が必要」

Python