この記事では、先に改行なしprint()出力の書き方を紹介してしまいます。
サンプルコードをコピペしながらサクサク処理を試せますので、ぜひ参考にしてくださいね。
改行なしでprint()を出力
pythonのprint()で改行をなくすには、print()関数の引数 end に空文字""
を指定します。
# 改行なしprint()
print("Hello World!!", end="")
print("Let's study Python!!", end="")
print("Did you do it??")
# 出力結果
Hello World!!Let's study Python!!Did you do it??
出力結果を見てわかるように、三つのprint()処理の出力が『改行されずに』表示されていますね。
print()関数
print()とは
print()関数はプログラム処理において出力を表示させるために使用します。
pythonを学ぶ上で一番最初に覚える関数と言っても良いでしょう。
print()の基本的な使い方
基本的な使い方としては以下のような感じです。
# 文字列を出力
print("あいうえお")
print("abcdefg")
# 出力結果
あいうえお
abcdefg
# 数字を出力
print(100)
print(3 + 5)
print(6 / 3)
# 出力結果
100
8
2
pythonを勉強し始めの頃は、こんな例文を何度も見てきたと思います。
でも、多くの人がprint()関数の機能についてあまり深く知りません。
実は、print()関数には出力方法を設定するオプション機能が備わっているんです。
print()関数の引数
pythonのprint()関数にはいくつかの引数を指定することができます。
以下で、print()で設定可能な引数を紹介していきます。
引数 sep
print()関数では、同時に複数のデータを表示させることができます。
text1 = "あいうえお"
text2 = "かきくけこ"
print(text1, text2)
# 出力結果
あいうえお かきくけこ
複数データを表示させる際に、print()で引数sep
を指定すると、
データどうしをつなぐ文字列を指定することができます。
text1 = "あいうえお"
text2 = "かきくけこ"
print(text1, text2, sep="aaa")
print(text1, text2, sep=",")
print(text1, text2, sep="")
# 出力結果
あいうえおaaaかきくけこ
あいうえお,かきくけこ
あいうえおかきくけこ
ちなみにsep
のデフォルト(何も指定しない)は 「' '
(半角スペース)」です。
引数end
引数end
は本記事の冒頭で紹介したように文末を指定するオプションです。
text3 = "abcdef"
text4 = "ABCDEF"
print(text3, end="XXX")
print(text4, end="a a")
# 出力結果
abcdefXXXABCDEFa a
文末に指定した文字列がそのまま後ろについて表示されていますね。
ちなみに引数end
のデフォルト(何も指定しない)は「"\n"
(改行文字)」です。
基本的には、引数end
を指定しないことがほとんどなので、必然的に文末で改行されるというわけですね。
引数file
一般的にはあまり使うことがありませんが、こんな機能もあるよということで紹介します。
引数file
を指定すると、print()出力と同時にファイルにデータを書き込むことができます。
いまいちわかりにくいと思うので、サンプルコードと実行結果を見てみましょう。
# 出力と同時にsample.txtファイルに書き込み
with open("sample.txt", "w")as f:
print("あいうえお", file=f)
print("python", file=f)
print(100, file=f)
出力結果には何も表示されませんが、「sample.txt」ファイルの中身を見てみましょう。
print()で出力したデータがそのまま「sample.txt」ファイルに書き込まれていますね。
引数flush
こちらもあまり使われることがありませんが、
引数flush
はプログラム処理中でも随時出力を表示するかどうかを指定できます。
わかりにくいと思うのでサンプルコードと実行結果をみていきましょう。
import time
# 繰り返し処理中も随時出力を表示
# 引数 flush を True
for _ in range(10):
print("*", end="", flush=True)
time.sleep(0.3)
繰り返し処理の最中でも、『*』が随時表示されることがわかります。
仮に、引数flush
を指定せず(もしくはFalse
で)実行した場合を見てみましょう。
import time
# 引数 flush を指定しない(もしくはFalse)
for _ in range(10):
print("*", end="")
time.sleep(0.3)
繰り返し処理が全て終わってから、まとめて出力されていることがわかります。
プログラム処理の進捗状況を出力するためにprint()を使う場合は引数 flush を True にしておきましょう。
まとめ
pythonの改行なしprint()の使い方を含め、print()関数のその他のオプションについて紹介しました。
ぜひ活用してみてくださいね。