Pythonのprint関数の使い方!sep・end・改行もわかりやすく解説!

Pythonでは、文字列や数値、変数の値などを画面に表示したいことがあります。

そんなときに使うのが、print関数です。

この記事では、Pythonのprint関数とは何なのか、基本的な使い方やsependの使い方について、わかりやすく解説します。

print関数とは?

print関数は、文字列や数値、変数の値などを出力するための関数です。

基本的な書き方は次のとおりです。

print(出力したい値)

例えば、"Hello"という文字列を表示する場合は、次のようにします。

print("Hello")

実行結果は次のようになります。

Hello

このように、print関数を使うことで、指定した値を画面に表示できます。

print関数でさまざまな値を出力する

print関数では、文字列や数値、変数の値などを出力できます。

例えば、文字列を出力する場合は、文字をダブルクォーテーション"またはシングルクォーテーション'で囲みます。

print("Python")
# Python
print('Hello')
# Hello

整数や小数などの数値も出力できます。数値の場合は、文字列のように"'で囲む必要はありません。

print(100)
# 100
print(12.5)
# 12.5

なお、次の2つは見た目は同じように出力されますが、Pythonでは異なる値です。100は整数のint型、"100"は文字列のstr型です。

print(100)
# 100
print("100")
# 100

また、print関数には変数を指定することもできます。この場合、変数nameに入っている"Python"と、変数ageに入っている20がそれぞれ出力されます。

name = "Python"
age = 20

print(name)
# Python
print(age)
# 20

さらに、リストや辞書などの値もそのまま出力できます。

例えば、リストを出力する場合は次のようにします。

languages = ["Python", "Java", "JavaScript"]

print(languages)
# ['Python', 'Java', 'JavaScript']

辞書も同じように出力できます。

user = {"name": "Taro", "age": 20}

print(user)
# {'name': 'Taro', 'age': 20}

このように、print関数では文字列や数値だけでなく、リストや辞書など、さまざまな値を出力できます。

print関数で複数の値を出力する

print関数では、複数の値をカンマ,で区切って指定できます。

print("Python", "Java", "JavaScript")
# Python Java JavaScript

複数の値を指定すると、デフォルトでは値と値の間に半角スペースが入ります。

文字列と数値を一緒に指定することもできます。

name = "Taro"
age = 20

print("名前:", name, "年齢:", age)
# 名前: Taro 年齢: 20

sepで値の区切り文字を変更する

print関数で複数の値を出力すると、デフォルトでは値の間が半角スペースで区切られます。

print("Python", "Java", "JavaScript")
# Python Java JavaScript

この区切り文字を変更したい場合に使うのが、sep引数です。

sepは「separator(区切り)」を意味し、複数の値の間に入れる文字を指定できます。

print("Python", "Java", "JavaScript", sep=",")
# Python,Java,JavaScript

例えば、ハイフン-で区切ることもできます。

print("Python", "Java", "JavaScript", sep="-")
# Python-Java-JavaScript

区切りをなくしたい場合は、空文字""を指定します。

print("Python", "Java", "JavaScript", sep="")
# PythonJavaJavaScript

endで出力の最後の文字を変更する

print関数を続けて実行すると、通常はそれぞれ別の行に表示されます。

print("Hello")
print("Python")
# Hello
# Python

これは、print関数ではデフォルトで出力の最後に改行が追加されるためです。

出力の最後に追加する文字を変更したい場合は、end引数を使います。

例えば、改行せずに続けて表示したい場合は、end=""とします。

print("Hello", end="")
print("Python")
# HelloPython

スペースを入れて同じ行に表示することもできます。

print("Hello", end=" ")
print("Python")
# Hello Python

また、出力の最後に任意の文字を追加することもできます。

print("Python", end="!")
# Python!

endを省略した場合は、デフォルトで"\n"が使用されます。\nは改行を表します。

sepとendを同時に使う

sependは、同時に指定することもできます。

print("Python", "Java", "JavaScript", sep=", ", end="!")
# Python, Java, JavaScript!

この場合、sep=", "によって値の間に, が入り、end="!"によって最後に!が追加されます。

sependの違いをまとめると、次のようになります。

引数役割デフォルト
sep複数の値の間に入れる文字を指定する半角スペース
end出力の最後に追加する文字を指定する改行\n

print関数で改行する

文字列の途中で改行したい場合は、改行を表す\nを使います。

print("Hello\nPython")
# Hello
# Python

\nが記述されている位置で改行されます。

また、引数を指定せずにprint()を実行することで、空の行を出力することもできます。

print("Hello")
print()
print("Python")
# Hello
# 
# Python

print関数で計算結果を出力する

print関数には、計算式を直接指定することもできます。先に計算が行われ、その結果がprint関数によって出力されます。

print(10 + 20)
print(10 * 5)
# 30
# 50

文字列と変数を組み合わせて出力する

実際のプログラムでは、文字列と変数の値を組み合わせて表示することもよくあります。

簡単な方法は、複数の値をカンマで区切って指定する方法です。

name = "Taro"
age = 20

print("名前は", name, "です")
print("年齢は", age, "歳です")
# 名前は Taro です
# 年齢は 20 歳です

ただし、この方法では値の間に自動的に半角スペースが入ります。

文字列の中に変数の値を埋め込みたい場合は、f文字列を使う方法もあります。

name = "Taro"
age = 20

print(f"名前は{name}です")
print(f"年齢は{age}歳です")
# 名前はTaroです
# 年齢は20歳です

f文字列では、文字列の先頭にfを付け、変数や式を{}の中に記述します。なお、このコードでは、半角スペースは入りません。

あわせて読みたい

Pythonのf文字列(f-strings)』については下記の記事で詳しく説明しています。興味のある方は下記のリンクからぜひチェックをしてみてください。

print関数で特殊な文字を出力する

Pythonでは、\nのように、バックスラッシュ\から始まる特殊な記述を使うことがあります。これをエスケープシーケンスといいます。

よく使われるものには、次のようなものがあります。

記述意味
\n改行
\tタブ
\\バックスラッシュ
\"ダブルクォーテーション
\'シングルクォーテーション

例えば、\tを使うとタブを入れることができます。

print("Python\tJava")
# Python	Java

文字列を囲んでいるダブルクォーテーションそのものを表示したい場合は、次のようにします。

print("I like \"Python\"")
# I like "Python"

print関数の主な引数

print関数は、概念的には次のような形式で使用できます。

print(*objects, sep=" ", end="\n", file=None, flush=False)

上記のように、sependfileflushを指定する場合は、sep=","end=""のように引数名を付けて指定します。

主な引数をまとめると、次のようになります。

引数説明
*objects出力する1つ以上の値を指定する
sep複数の値の区切り文字を指定する
end出力の最後に追加する文字を指定する
file出力先を指定する
flush出力をすぐに反映するかを指定する

通常のプログラムでは、まずsependを覚えておけば十分です。fileflushは、必要になったときに覚えるとよいでしょう。

fileは、出力先を変更したい場合に使用します。通常は標準出力(多くの場合は画面)に出力されますが、ファイルなどを指定することもできます。この場合、Pythonは画面ではなくoutput.txtに書き込まれます。

with open("output.txt", "w") as f:
    print("Python", file=f)

flushは、出力内容をすぐに出力先へ反映するかどうかを指定する引数です。通常はFalseで、出力内容がバッファに一時的にためられることがあります。Trueを指定すると、バッファにためられている内容をすぐに出力します。

例えば、時間のかかる処理の進捗状況をすぐに表示したい場合などにflush=Trueが使われることがあります。

import time

for i in range(3):
    print(".", end="", flush=True)
    time.sleep(1)

# ...

この例では、1秒ごとに.が出力されます。

print関数はどんなときに使う?

print関数は、ユーザーに文字や計算結果を表示するときだけでなく、プログラムを作っている途中で変数の値を確認するときにもよく使います。

例えば、次のプログラムを考えてみます。

price = 1000
quantity = 3

total = price * quantity

print(total)

実行すると、変数totalにどのような値が入っているのかを確認できます。

3000

このように、print関数はプログラムの実行結果を表示したり、処理の途中に入っている値を確認したりするときに便利です。

本記事のまとめ

この記事では「Pythonのprint関数」について、以下の内容を説明しました。

  • print関数は文字列や数値、変数の値などを出力するために使用する
  • リストや辞書など、さまざまな値を出力できる
  • 複数の値をカンマで区切って出力できる
  • sepを使うと、複数の値の区切り文字を変更できる
  • endを使うと、出力の最後に追加する文字を変更できる
  • \nを使うと、文字列の途中で改行できる
  • 文字列と変数を組み合わせる場合は、f文字列を使う方法もある
  • fileを使うと出力先を変更でき、flushを使うと出力をすぐに反映できる

Pythonで文字列や変数の値、計算結果などを画面に表示したい場合は、print関数を使います。特にsependを覚えておくと、出力形式を柔軟に変更できるようになります。

お読みいただきありがとうございました。

スポンサーリンク