【Python入門】print関数とは?基本的な使い方からオプション設定まで解説
プログラミングをするなかで、「作成したプログラムを実行して何かを表示したい!」と思う場面は出てくるものです。
Pythonの場合、文字や数値を出力する際は「print」と呼ばれる関数を使用します。
この記事では、print関数の基本的な使い方やオプション(引数)の設定方法について説明していきたいと思います。
printとは?
先程も説明した通り、指定した数値や文字列を出力することができる関数のことです。
例えば「Hello, World!」という文字列を出力したい場合は、このように書きます。
print("Hello, World!") # print関数に"Hello, World"という文字列を渡す
print()の括弧内に表示したい数値や文字列を記述することで、プログラム実行時に出力することができます。
なお、上のコードをそのままコピペして実行すると、以下のように表示されます。
Hello, World!
基本的な使い方
print関数では、「表示したい値を渡す」ことで出力が可能になるのですが、中身が文字列かそれ以外かで記述方法が変わってきます。
文字列の場合
文字列の場合は、表示したい値を「’」もしくは「”」の記号で囲みます。
# 下の2つは、どちらも同じ出力結果(Hello, World!)になる
print('Hello, World!')
print("Hello, World!")
= 実行結果 =
Hello, World!
Hello, World!
print関数を実行する際、記号が片方でも抜け落ちているとエラーになってしまうため注意してください。
# 下のコードを実行するとエラーになる
print("Hello, World!)
= 実行結果 =
print("Hello, World!)
^
SyntaxError: unterminated string literal (detected at line 1)
文字列以外(変数含む)の場合
それ以外の場合(数値など)であれば、何も囲わずにそのまま記述します。
また、値の入った変数の中身を表示したい場合も同様です。
print(100) # 数値(100)が出力される
str = "Hello, World!"
print(str) # 変数(str)に代入されている文字列(Hello, World!)を出力
print("str") # ""で囲ってしまうと、文字列扱いになってしまう
= 実行結果 =
100
Hello, World!
str
こうして見ると、「数値は記号で囲ってもどちらでも良いのでは?」と思う方もいるかもしれません。
しかし、数値を文字列として扱った場合とそうでない場合とでは、Pythonの挙動が少し変わってきます。
print(1 + 1) # 数値(1)を足し合わせた結果を出力
print("1" + "1") # 文字列(1)を足し合わせた結果を出力
= 実行結果 =
2
11
上の例の場合、最初の出力では「1」を数値として扱っているため、1+1の結果である「2」が表示されています。
一方、次の出力時には「1」を文字列として扱っているので、それぞれを連結させた「11」が表示される形になります。
このように、データ型によって出力形式が想定通りにならないこともあるので、記述する際は十分気を付けるようにしましょう。
オプション(引数)の設定
print関数では、オプションである引数を指定することで、様々な条件で出力ができるようになります。
引数 | 説明 |
---|---|
sep | 複数の値を出力する場合の区切り文字を指定 |
end | 末尾に出力する文字(あるいは、改行あり/なし)を指定 |
file | ファイルに書き込みたい場合にパスを指定 |
flush | 即時に出力するかどうかをTrueかFalseで指定 ※後述 |
【sep】区切り文字の指定
複数の数値や文字列を出力する場合に、間に入れる文字を指定することができます。
何も指定していないデフォルトの状態では、半角スペース (sep=” “) が出力されます。
str = "test"
print("テスト", 123, str) # 複数データの出力はカンマ(,)で区切る
print("テスト", 123, str, sep="__") # sepを指定した場合
= 実行結果 =
テスト 123 test
テスト__123__test
また、区切り文字に”\n”(円マーク、あるいはバックスラッシュ)を指定すれば、数値や文字列ごとに改行することも可能です。
str = "test"
print("テスト", 123, str, sep="\n") # sepで改行を指定した場合
= 実行結果 =
テスト
123
test
【end】末尾(改行あり/なし)の指定
print関数にて出力したデータの、末尾の処理方法を指定できます。
何も指定していないデフォルトの状態では、そのまま改行される仕様 (end=”\n”) になっています。
str = "test"
print("テスト")
print(123)
print(str)
= 実行結果 =
テスト
123
test
改行したくない場合は、endに改行(“\n”)以外の文字列を指定することで、連続での出力が可能です。
str = "test"
print("テスト", end="") # 空の文字列("")を指定
print(123, end="__") # 改行以外の文字列を指定
print(str)
= 実行結果 =
テスト123__test
【file】出力するファイル先を指定
print関数で出力するデータを保存する場合に、出力するファイルのパスを指定します。
何も指定していないデフォルトの状態では、特に保存はされません。
なお、ファイルに保存したい場合は、前もって書き込みができるよう準備しておく必要があります。
f = open("test.txt", "w") # 書き込み用に開いたファイル(test.txt)を、fという名前で保持
print("テスト", file=f) # 出力内容を保持していたファイル(f)に書き込む
f.close() # 開いていたファイル(test.txt)を閉じる
【flush】出力タイミングの指定
flushでは、print関数にてデータを出力する際に即時性を求めるかどうかを指定します。
何も指定していないデフォルトの状態では、flush=False(即時性を求めない)となっています。
from time import sleep
for num in range(5): # 以下の処理を5回繰り返す
print(num + 1, "回目のアラート", flush=True)
sleep(0.5) # 0.5秒待つ
= 実行結果 =
1 回目のアラート
2 回目のアラート
3 回目のアラート
4 回目のアラート
5 回目のアラート
通常、データの表示や出力といった処理は、他の処理(簡単な演算処理など)に比べて大幅に時間がかかります。
そのため、出力結果をすぐには表示せずにため込んでおき、タイミングを見計らって表示することで負荷を減らす仕様になっているのです。
上のようにミリ秒単位で表示内容を確認するなど、正確なタイミングで出力したい場合はTrueを指定するようにしましょう。
まとめ
この記事では、print関数の基本的な使い方やオプション(引数)の設定方法について解説しました。
printは特に出番が多い関数なので、事前にきちんと使い方を学んでおくことをおすすめします。