Python: print()で改行の有無や区切り文字を指定する

Pythonで良く使う組み込み関数の1つ、 print()関数の行末の改行コードを変更したり、 区切り文字を変更する方法を紹介します。

初期値として行末は「改行コード」、 区切り文字は「スペース(" ")」になっています。

print("a", "b", "c")  # a b c

上のprint()文を実行すると、 区切り文字としてスペースが入り、 行末に改行コードで改行されていることがわかります。

行末の改行コードを変更する(end)

行末の改行コードを変更したい場合はパラメータ「end」を指定します。 「end=""」(ダブルクォート)または「end=''」(シングルクォート) のように「空文字」を指定すると改行コード無しになります。

for v in ["a", "b", "c"]:
	# 改行なし
	print(v, end="")

# 実行結果
abc

「end="/"」とした場合は改行コードの代わりに「/」が出力されます。

for v in ["a", "b", "c"]:
	# 改行の代わりに「/」
	print(v, end="/")

# 実行結果
a/b/c/

逆に改行コードの数を増やすことも可能です。「end="\n\n"」と指定すると、 改行コードが2つ入って出力されます。行間を空けたいはこの方法も使えます。

for v in ["a", "b", "c"]:
	# 改行コード 2つ
	print(v, end="\n\n")

# 実行結果
a

b

c

区切り文字を変更する(sep)

区切り文字を変数する場合はパラメータ「sep」 (separatorの略)を指定します。 デフォルトはスペースです。

次のサンプルコードでは区切り文字を指定しない場合と、 「sep=","」としてカンマを指定した場合を比べています。

# デフォルト(スペース)
print("a", "b", "c")

# カンマを指定
print("a", "b", "c", sep=",")

# 実行結果
a b c
a,b,c

endとsepを両方指定する

パラメータの「end」と「sep」を同時に指定することも可能です。
次のサンプルコードでは「end=""」「sep=""」と両方に空文字を指定しています。

print("あ", "い", "う", end="", sep="")
print("え","お", end="", sep="")

# 実行結果
あいうえお
Python