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="") # 実行結果 あいうえお