原文: Python New Line and How to Python Print Without a Newline‌‌
原著者: Estefania Cassingena Navone
翻訳・翻案: Manabu Matsumoto

ようこそ! Python の改行文字は、行の終わりと新しい行の始まりを示すのに使用されます。コンソールに出力を表示したり、ファイルを扱おうとする場合には、改行文字の使用方法について知ることが非常に重要です。

この記事では、以下の内容を学ぶことができます:

  • Python で改行文字を識別する方法
  • 文字列内および print 文の中での改行文字の使用方法
  • 文字列の最後に改行文字を追加させずに print 文を記述する方法

さあはじめましょう! ✨

🔹 改行文字とは

Python での改行文字がこちらです:

newline-image

改行文字は以下の 2 つの文字でできています:

  • バックスラッシュ (訳注: 日本語フォントでは半角の¥記号として表示される場合があります) 。
  • 文字 n

文字列内に改行文字がある場合は、それは現在の行がそこで終わり、その直後に新しい行が始まることを意味します:

newline-character-in-a-string

改行文字は f-string (フォーマット済み文字列) 内でも使用できます:

>>> print(f"Hello\nWorld!")

🔸 print 文内の改行文字

デフォルトでは、print 文は文字列の最後に「こっそり」改行文字を加えます。

このようにして:

newline-character-in-print-statement

Python の公式ドキュメントに従って改行文字が追加されます。

Python に備わっている print 関数 の end パラメーターのデフォルト値は \n なので、改行文字が文字列にアペンドされています。

💡 ヒント: アペンド (append) は 「末尾に付加する」を意味します。

関数の定義はこちらです:

print-function-definition

end の値が \n なので、それが文字列の末尾に付加される点に注目してください。

print 文を 1 つだけ使用する場合は、出力に 1 行しか表示されないため、このことに気づくことができません。

only-one-print-statement

ですが、いくつかの print 文を相次いで Python のスクリプト内で使用した場合には:

several-print-statements

それぞれの行の末尾に \n が「こっそり」付加されているので、出力される文字列は別々の行に表示されます:

printed-in-separate-lines

🔹 改行せずに出力を表示する方法

print 関数の end パラメーターの値をカスタマイズすることで、このデフォルトの挙動を変えられます。

例として、デフォルトの値を使用する場合は:

using-print-function-with-default-end-parameter

次のように出力が 2 行で表示されるのが確認できます:

printed-strings-in-two-lines

ですが、次のように end の値をカスタマイズして、" " に設定した場合は、

customize-end-parameter

文字列の末尾に改行文字の \n ではなくスペースが付加されるので、2 つの print 文の出力は 1 行で表示されます:

print-strings-in-one-line

このことを利用して、次の例のように一連の値を 1 行で表示できます:

print-a-sequence-of-values-in-one-line

出力は次のように表示されます:

output-of-printing-a-sequence-of-values-in-one-line

💡 ヒント: 条件文を加えて、最後の数にコンマが付かないようにしてあります。

同様に、次のようにしてイテラブル (訳注: for 文で繰り返し可能なオブジェクト) のすべての値を、同じ行内に表示するのにも使用できます:

print-statement-with-iterable

出力は次のように表示されます:

output-iterable-values

🔸 ファイル内の改行文字

改行文字 \n はファイル内にも存在しますが、隠されています。テキストファイルの中に改行があるとき、そこには改行文字 \n が挿入されています。

newline-character-in-files

次のように <file>.readlines() でファイルを読み込むことで、これをチェックできます:

with open("names.txt", "r") as f:
    print(f.readlines())

出力は次のように表示されます:

output-file-readlines

ご覧の通り、テキストファイルの最初の 3 行は、行の終わりが改行文字 \n になっており、「こっそり」改行してくれています。
💡 ヒント: ファイルの最後の行だけは改行文字で終わっていないことに注目してください。

🔹 まとめ

  • Python の改行文字は \n です。改行文字はテキストの行の終わりを示すのに使用されます。
  • end = <character> を使用することで、改行させずに文字列を出力に表示できます。ここで、<character> は行を分けるために使用される文字です。

この記事があなたのお役に立ち、気に入ってくだされば幸いです。 これで、Python で改行文字を扱うことができるようになりましたね。

よろしければ私 (原著者) のオンライン講座をチェックしてみてください。Twitter のフォローもよろしくお願いします。 ⭐️