Python
 Computer >> コンピューター >  >> プログラミング >> Python

【Python入門】print関数で改行なしに出力する方法を徹底解説

Python 3で改行なしに文字列を出力したい場合は、print関数に追加の引数を指定し、次の文字列を新しい行に出力しないようプログラムに指示します。具体的には、print("Hello there!", end = '')のように記述します。この場合、次のprint関数の出力は同じ行に表示されます。


はじめに

プログラミングをしていると、画面に値を出力しつつ、直前に出力した値と同じ行に表示したい場面があります。たとえば、ユーザーの名(ファーストネーム)と姓(ラストネーム)を同じ行に表示したいケースなどが挙げられます。では、Pythonでどのように改行なしのprintを実現すればよいのでしょうか?

本記事では、Pythonで改行なしに出力する方法について詳しく解説します。その前に、まずはPythonにおける文字列の基本をおさらいしておきましょう。

文字列のおさらい

文字列とは、文字・数字・記号・空白などが連なったデータのことです。文字列はほとんどのプログラミング言語において重要なデータ型であり、特にPythonでは頻繁に扱われます。文字列を扱う際には、句読点を加えたり、改行を挿入したり、テキストを同じ行にまとめたりして、読みやすく整えたい場面が数多くあります。

Pythonでは、文字列を次のように定義します。

ourString = "This is our string!"

また、シングルクォート('')を使って文字列を宣言することもできます。ただし、文字列の始まりと終わりは同じ種類の引用符である必要があります。もし文字列の中にシングルクォートが含まれる場合はダブルクォートを使い、逆の場合も同様です。そうしないとエラーが発生します。

Pythonで改行なしにprintする方法

通常、Pythonで文字列を出力すると、それぞれ別の行に表示されます。以下の例を見てみましょう。

print("First test string.")
print("Second test string.")

このコードを実行すると、次のような結果になります。

First test string.
Second test string.

では、これら2つの文字列を同じ行に表示したい場合はどうすればよいのでしょうか?ここからは、Python 3.xとPython 2.xの両方で使える方法を順番に見ていきます。

Python 3.xで改行なしに出力する方法

Python 3では、改行なしの出力はとても簡単です。print関数に追加の引数endを指定することで、「次の文字列を新しい行に出力しない」ことをプログラムに伝えることができます。

例を見てみましょう。

print("Hello there!", end = '')
print("It is a great day.")

このコードの出力結果は次のとおりです。

Hello there!It is a great day.

これで、2つの文字列が同じ行に出力されました。

注目すべきは、2つの文字列の間にスペースが入っていないという点です。同じ行に表示される文字列の間にスペースを入れたい場合はどうすればよいのでしょうか?答えは簡単で、end引数にスペース文字を含めるだけです。

先ほどの例では、引用符の中が空文字列だったため、テキスト間にスペースが挿入されませんでした。しかし、引用符の中にスペースを入れておけば、出力にもスペースが反映されます。さらに、endパラメータには任意の文字列を指定でき、その内容が文字列の区切りとして機能します。

例を見てみましょう。

print("Hello there!", end = " It's Friday. ")
print("It is a great day.")

このコードの出力結果は次のとおりです。

Hello there! It's Friday. It is a great day.

Python 2.xで改行なしに出力する方法

Python 2で同じ行にテキストを出力したい場合は、print文の末尾にカンマを付けます。実際の例を見てみましょう。

print "Hello there!",
print "It is a great day."

このコードを実行すると、次のような結果になります。

Hello there! It is a great day.

ここで注目すべきは、改行されていないにもかかわらず、テキストの間にスペース文字が自動的に挿入されている点です。これは多くの場合に便利な仕様です。たとえば、2つの文をつなげる場合、間にスペースがあるほうが自然だからです。

一方で、改行もスペースも入れずに出力したい場合もあります。そのようなときは、Pythonに標準で付属しているsysモジュールを使う方法があります。この方法を使うと、プログラムに指示した内容をそのまま正確に出力できます。例を見てみましょう。

import sys

sys.stdout.write("Hello there!")
sys.stdout.write("It is a great day.")

このコードの出力結果は次のとおりです。

Hello there!It is a great day.

このコードでは何が行われているのか、順を追って解説します。まず1行目で、改行や空白なしに出力するために必要な関数を持つsysライブラリをインポートしています。続く行では、システムに対してテキストを「そのままの形で」、つまり余計なスペースを一切加えずに出力するよう指示しています。その結果、上記のように2つの文字列が同じ行に、スペースなしで表示されます。

まとめ

いかがでしたか?本記事では、Pythonで改行なしに出力する方法を詳しく解説しました。このテクニックは、すべてのテキストを同じ行に表示するなど、特定の形式でデータを出力したい場合に非常に役立ちます。

ポイントをおさらいしましょう。Python 2.xでは、print文の末尾にカンマを追加することで同じ行に出力できます。一方、Python 3.xでは、endパラメータを指定する必要があります。

  1. Pythonインタープリターとは?仕組みと初心者向けオンライン環境を徹底解説

    Pythonは学びやすいプログラミング言語として知られています。その理由のひとつが、自分のマシンに正しいバージョンのPythonをインストールしなくても、オンラインで利用できるPythonインタープリターが数多く存在する点です。本記事では、Pythonインタープリターの仕組みについて解説し、初心者にも使いやすい人気のオンラインインタープリターをご紹介します。 Pythonプログラムはどのように実行されるのか? PythonはJavaと同様に、純粋なインタプリタ言語ともコンパイラ言語とも分類できず、両方の性質を併せ持っています。 ここでいう「コンパイル」とは、特定のプラットフォームに依存し

  2. Pythonで改行なしでprint出力する方法をわかりやすく解説

    Pythonのprint()関数は、デフォルトで出力の末尾に改行文字(\n)を自動的に追加します。そのため、複数のprint文を実行すると、それぞれの出力が別々の行に表示されます。しかし場合によっては、複数の出力を同じ行に連結して表示したいこともあるでしょう。この記事では、print()関数の特別な引数を使って、改行なしで1行に出力する方法を解説します。通常のprint()の動作まず、通常のprint()を使った場合の挙動を確認しましょう。以下の例では、3つのprint文がそれぞれ新しい行に出力されます。コード例print(Apple) print(Mango) print(Banana)実行