Pythonでprint関数を使って値を出力!サンプルコード8選!

Python Python

Pythonでprint関数を使って、値を出力する方法について書いています。
その後にprint関数を使ったコードをいくつか書いて、挙動を確認してみました。

サンプルコードはPythonのバージョン3.10.5で動作を検証しています。
Pythonのバージョン2では動作が変わってくるので注意してください。

print関数について、公式ドキュメントではこちらに記載があります。

print関数の使い方

print関数を使うことで、プログラムを実行しているターミナルに値を出力することができます。
例えば、下記のように使うことができます。

text = 'hello'
print(text) # hello

最初にtext変数にhelloという文字列を格納しました。
その後にprint関数に対して、text変数を渡して、格納されている値を出力しています。

結果、ターミナルには「hello」が出力されます。
このようにprint関数に出力したい値を直接指定したり、変数を指定することでターミナルに中身を出力できます。

print関数にいろいろな値を渡してみる

print関数に対して、いろいろな値を渡して挙動を確認してみました。
下記のデータを渡して出力しています。

・数値
・文字列
・論理値
・リスト
・辞書
・タプル
・None
print(1) # 数値
print("apple") # 文字列
print(True) # 論理値
print(["a", "b", "c"]) # リスト
print({ "red": "apple", "yellow":"banana" }) # 辞書
print((1, 2, 3)) # タプル
print(None) # None

実行すると、下記のように出力されます。
それぞれの型でprint関数に渡すと、わかりやすく出力されることが確認できました。
何もないことを表すNoneは、空にならずにNoneで出力されます。

1
apple
True
['a', 'b', 'c']
{'red': 'apple', 'yellow': 'banana'}
(1, 2, 3)
None

引数と返り値

引数と返り値についてです。

引数

引数は下記のようになります。
出力するオブジェクトは複数渡すことが可能です。

引数 説明
オブジェクト(複数) 出力したいオブジェクトを渡します。可変長で複数渡すことが可能です。
区切り文字(sep=’ ‘) 区切り文字を指定します。デフォルトでは半角スペースです。
末尾の文字(end=’\n’) 出力する末尾の文字を指定します。デフォルトでは改行コードです。
ファイル(file=sys.stdout) 出力先(writeメソッドを持つオブジェクト)を指定します。デフォルトではsys.stdoutです。
フラッシュ(flush=False) 画面の出力を強制します。デフォルトではFalseです。

それぞれの引数については、サンプルコードで書いているので確認してみてください。

返り値

返り値はありません。

print関数のサンプルコード8選

いろいろな表示方法を試してみました。
print関数に渡せる引数を網羅してみました。

複数の値を出力する

複数の変数や値を渡して、一括して出力します。
下記のように可変で引数を渡すことができます。

print("apple", "lemon", "banana", "grape") # apple lemon banana grape

このように、それぞれの値の間に半角スペースが入った状態で出力されます。

apple lemon banana grape

区切り文字(separator)を指定すると、半角スペースを省くことが可能です。

print("apple", "lemon", "banana", "grape", sep="")

区切り文字(separator)を指定する

区切り文字は名前付き引数で、sepを指定して渡します。
sepには任意の文字列を渡すことが可能です。
渡さない場合のデフォルトは半角スペース(sep=' ')になります。

print("apple", "lemon", "banana", "grape", sep="/")

半角スラッシュ(/)を指定しました。
それぞれの値の間に半角スラッシュ(/)が入って出力されます。

apple/lemon/banana/grape

文字列の最後で改行しないようにする

文字列の最後で改行しないようにするには、名前付き引数のendを空に指定します。
endにも任意の文字列を渡すことが可能です。
endを渡さない場合のデフォルトは改行コード(\n)になります。

例えば、このような場合です。

print("hello, world!")
print("hello, world!")

そのままだと、下記のように改行して出力されます。

hello, world!
hello, world!

endを空にすることで、改行させないようにできます。
このように空を指定します。

print("hello, world!", end="")
print("hello, world!")

そうすると、最初の方は改行されずに下記のようになります。

hello, world!hello, world!

文字列の途中で改行したい

文字列の途中で改行したいときには、改行コードを入れましょう。
このように改行コードを入れることで、改行することができます。

print("hello,\nworld!")

文字列の間に\nを指定しました。指定箇所で改行されます。
出力結果は下記になります、改行できていることが確認できました。

hello,
world!

f(フォーマット済み文字列リテラル)を使って文字列に変数を埋め込む

fを使うことで、文字列に変数を埋め込んで、print関数で出力することができます。
例えば、下記のようにします。

apple = "りんご"
banana = "ばなな"
lemon = "レモン"
print(f"{apple}と{banana}と{lemon}")

print関数に渡した文字列の先頭にfを指定しました。
これで、波括弧({})に入れた変数を文字列に展開して出力することができます。

そうすると、このように変数が埋め込まれて出力されます。

りんごとばななとレモン

formatメソッドを使って文字列に変数を埋め込む

文字列からformatメソッドを呼ぶことでも、同じように出力することができます。
例えば、下記のように使います。

apple = "りんご"
banana = "ばなな"
lemon = "レモン"
print("{}と{}と{}".format(apple, banana, lemon))

print関数に渡した文字列からformatメソッドを呼んで、それぞれの変数を渡しました。
文字列の波括弧({})の箇所に順番に展開されます。

そうすると、同じように変数が埋め込まれて出力されました。

りんごとばななとレモン

同じように出力できますが、フォーマット済み文字列リテラルの方がわかりやすいのでおすすめです。

print関数でファイルを出力する

print関数の名前付き引数のfileを指定することで、書き込み先を変えることができます。
例えば、下記のようにファイルを出力することも可能です。

my_file = open("output.txt", "a")
print("ファイルに出力するテスト!", file=my_file)
print("ハローワールド!", file=my_file)
my_file.close()

open関数でファイルを追記モードで開いた後に、print関数を使っています。
それぞれ引数にfileを指定して、openで返ってきたオブジェクトを指定しています。

こうすることで”output.txt”が作られて、ファイルにprint関数の第1引数の内容が書き込まれます。

画面の出力を強制する

名前付き引数のflushを指定することで、画面出力を強制することができます。
例えば、下記のようにsleepを処理に入れたときに有効です。

import time
print('test output -> ', end="")
for i in range(5):
  time.sleep(1)
  print(i, end="", flush=True)

最初にsleepを使うためにtimeモジュールをインポートしています。
その次に「test output -> 」を出力しています。

そして、for文で5回処理をループします。
sleepを使うことで、処理を待ってくれます。
sleepで1秒待ってiの値を出力していますが、このときにflushをTrueにしています。

出力結果は「test output -> 01234」です。
flushの引数がFalseのままsleepを使うと、全部のループが終わった後に一気に出力されます。

flushをTrueにしたことで、print関数の内容が、下記のように順に出力されるようになります。
「test output -> 0」=>「test output -> 01」=>「test output -> 012」…

おわりに

今回はPythonのprint関数について書きました。

単純に値や変数を指定するだけで、出力することができました。
また、複数の値や変数を指定することで、複数出力が可能でした。

コメント

タイトルとURLをコピーしました