言語バージョン 3.9.0

公開日 2020年11月17日 JST

更新日 2021年1月15日 JST

print

このページでは豊富な例を用いてPythonのprintの使い方を学ぶことができます。

printはPythonの組み込み(built-in)関数です。
簡易的なプログラムやデバッグを実行する際に多く使用され、指定された出力先に引数で与えられた値を出力します。 デフォルトの出力先はsys.stdout(コンソール画面など)です。

printは以下のように定義されていますが、 この投稿では比較的多く用いられる例を挙げるのでキーワード引数のfileとflushの説明は省略します。

# printの定義
print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)

出典:print - Pythonドキュメント

TL;DR

基本

print('Python')
==> Python



print('Python', 'Ruby')
==> Python Ruby



print(1, 2, 3)
==> 1 2 3



tuple1 = ('January', 'February', 'March', 'April', 'May', 'June', 'July')
# tuple1が出力される
print(tuple1)
==> ('January', 'February', 'March', 'April', 'May', 'June', 'July')
# *(アスタリスク)をつけることでlist型やtuple型などを展開できる
# print('January', 'February', 'March', 'April', 'May', 'June', 'July')と同じ
print(*tuple1)
==> January February March April May June July




class Language:
    def __init__(self, identifier, name):
        self.identifier = identifier
        self.name = name

language1 = Language(1, 'Python')
print(vars(language1))
==> {'identifier': 1, 'name': 'Python'}

関連情報:class(クラス定義)の使用方法

複数の値出力時の区切り文字(キーワード引数:sep)

print('Python', 'Django', 'PyTorch', sep='-')
==> Python-Django-PyTorch



list1 = [1, 2, 3, 4, 5]
print(*list1, sep=',')
==> 1,2,3,4,5



dict1 = {'py': 'Python', 'go': 'Golang', 'js': 'JavaScript'}
for k, v in dict1.items():
    print(k, v, sep=':')
==> py:Python
==> go:Golang
==> js:JavaScript

関連情報:forの使用方法

出力末尾の文字(キーワード引数:end)

print('list', 'tuple', 'dict', end='@')
==> list tuple dict@



# endのデフォルト値はend='\n'なので末尾は改行
for i in range(3):
    print(i)
==> 0
==> 1
==> 2



# endの値を変更したので改行されない
for i in range(3):
    # endに半角スペースを指定
    print(i, end=' ')
==> 0 1 2



# endのデフォルト値はend='\n'なので以下の記述は同意義
print(1, end='\n')
==> 1
print(1)
==> 1



# sepとendを両方使用する場合
dict1 = {'us': 'United States', 'jp': 'Japan', 'de': 'Germany'}
for k, v in dict1.items():
    print(k, v, sep=':', end='...')
==> us:United States...jp:Japan...de:Germany...

関連情報:for文でのrange使用例

関連情報:rangeの使用方法

解説

# printの定義
print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)

出典:print - Pythonドキュメント

基本

printではキーワード引数ではない引数を与えると、その値を末尾に改行を付けた状態で標準出力先へと出力します。
この引数は複数与えることが可能で、その場合は値同士の区切り文字は半角スペースとなります。

また、*(アスタリスク)を使用してlist型などの値を展開して引数として与えることも可能です。
末尾の改行、値同士の区切り文字は後述するキーワード引数を与えることによりデフォルトの動作から変更することが出来ます。

print(3.14)
==> 3.14



print(100, 200, 300)
==> 100 200 300



list1 = ['Apple', 'Banana', 'Kiwi']
# list1が出力される
print(list1)
==> ['Apple', 'Banana', 'Kiwi']



# list1が展開されprint('Apple', 'Banana', 'Kiwi')と記述したときと同じ
print(*list1)
==> Apple Banana Kiwi



for i in range(2):
    print(i)
==> 0
==> 1

関連情報:for文でのrange使用例

関連情報:rangeの使用方法

複数の値出力時の区切り文字(キーワード引数:sep)

sepと指定したキーワード引数を使用することにより、複数の値を表示する際の区切り文字を指定することが出来ます。
sepキーワード引数を指定しない場合は、デフォルトの区切り文字である半角スペースが区切り文字として適用されます。

print('Kiwi', 'Peach', sep=',')
==> Kiwi,Peach



# sepを指定していないときと同じ挙動
list1 = [1, 2, 3]
print(*list1, sep=' ')
==> 1 2 3
print(*list1)
==> 1 2 3

出力末尾の文字(キーワード引数:end)

endと指定したキーワード引数を使用することにより、末尾に追加する文字を指定することが出来ます。
デフォルトの末尾の追加文字は\n(改行)であり、sepキーワード引数と同様に、キーワード引数の指定をしない場合にデフォルト値が適用されます。

print(1, end='@@@')
==> 1@@@



# デフォルトの末尾は改行
for i in range(2):
    print(i)
==> 0
==> 1



# endに半角スペースを指定
for i in range(2):
    print(i, end=' ')
==> 0 1



dict1 = {'ch': 'Chinese', 'es': 'Spanish'}
for k, v in dict1.items():
    print(k, v, sep=':', end=',')
==> ch:Chinese,es:Spanish,

1次情報

入力と出力 - Pythonドキュメント

print - Pythonドキュメント