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関数について書きました。
単純に値や変数を指定するだけで、出力することができました。
また、複数の値や変数を指定することで、複数出力が可能でした。
コメント