【Python】出力関数の使い方【print関数】

Python

print(‘Hello World’)でおなじみの関数ですが、実際どのような関数なのでしょうか?もう少しだけ詳しくprint関数の使い方を学んでいきましょう!

データを画面に出力する

print関数は引数で受け取ったデータを画面に出力してくれます。Python2とPython3では書き方が違うのでそれぞれ見ていきましょう!

使い方

Python2

2系では文として定義されています。print文は以下のように記述します。

print 出力したいデータ

Python3

3系では関数として定義されています。print関数は以下のように記述します。

print(出力したいデータ)

いろんなデータ型の出力

printは渡されたデータ型に定義されている__str__メソッドを呼び出し、変換された文字列を出力しています。データ型によってそれぞれどのような出力がされるか見てみましょう!

文字列

文字列は以下のように出力されます。

Python2

print 'Hello World'

Python3

print('Hello World')

実行結果

Hello World

数値

int型、float型、complex型の出力を見てみます。

Python2

# int型(整数)
print 123

# float型(浮動小数点数)
print 1.23

# complex型(複素数)
print 1j

Python3

# int型(整数)
print(123)

# float型(浮動小数点数)
print(1.23)

# complex型(複素数)
print(1j)

実行結果

123
1.23
1j

リスト・タプル・セット

list型、tuple型、set型の出力を見てみます。

Python2

# list型
print [1, 2, 3]

# tuple型
print (1, 2, 3)

# set型
print {1, 2, 3}

Python3

# list型
print([1, 2, 3])

# tuple型
print((1, 2, 3))

# set型
print({1, 2, 3})

実行結果

[1, 2, 3]
(1, 2, 3)
{1, 2, 3}  # Python2: set([1, 2, 3])

辞書

dict型の出力を見てみます。

Python2

print {'key1': 1, 'key2': 2, 'key3': 3}

Python3

print({'key1': 1, 'key2': 2, 'key3': 3})

実行結果

{'key1': 1, 'key2': 2, 'key3': 3}

関数

組み込み関数と自作関数を出力してみます。()を付けないように気を付けましょう!

Python2

def func():
    pass


# 組み込み関数
print abs

# ユーザー関数
print func

Python3

def func():
    pass


# 組み込み関数
print(abs)

# ユーザー関数
print(func)

実行結果

<built-in function abs>
<function func at 0x1036b7b00>

クラス

クラスも組み込みとユーザー定義を出力してみます。

Python2

import module

class Test:
    pass


# 組み込み
print range

# ユーザー定義
print Test

# module.pyに定義したTestクラスの出力
print module.Test

Python3

import module

class Test:
    pass


# 組み込み
print(range)

# ユーザー定義
print(Test)

# module.pyに定義したTestクラスの出力
print(module.Test)

実行結果

<class 'range'>
<class '__main__.Test'>  # Python2: __main__.Test
<class 'module.Test'>    # Python2: module.Test

変数の出力

変数に代入されているデータも出力することができます。

s = 'Hello World'
print(s)

実行結果

Hello World

自作クラスのインスタンスを出力する

クラスに__str__メソッドを定義することで出力される値を指定することができます。

サンプル

以下のように__str__メソッドで返した文字列が出力されます。

class Test:
    
    def __str__(self):
        return 'Testクラスです'


# インスタンス化
t = Test()

print(t)

実行結果

Testクラスです

改行したくない場合

print関数はデフォルトではかならず改行してしまいます。改行したくない場合は以下のようにします。

カンマ区切りでデータを渡す

print関数の引数にカンマ区切りでデータを記述することで複数のデータをスペース区切りで出力することができます。

sep引数を指定することで区切り文字を変更することができます。

使い方

以下のようにカンマ区切りでデータを記述します。

print(データ1, データ2, ..., データN)

sep引数はキーワード呼び出し指定します。

print(データ1, データ2, ..., データN, sep='区切り文字')

サンプル

同じ行に複数のデータを出力してみます。

print('Hello World', 123, [1, 2, 3])

# 区切り文字の指定
print('090', '1234', '4567', sep='-')

実行結果

Hello World 123 [1, 2, 3]
090-1234-4567

end引数を指定する

end引数を指定することで出力の末尾に表示する文字を変更することができます。

書き方

以下のようにend引数に文字を指定します。

print(出力するデータ, end='末尾に出力する文字')

サンプル

以下のように末尾の文字を指定することができます。

print('1', end='+')
print('2', end='=')
print('3')

実行結果

1+2=3

変数やデータを文字列に埋め込む

出力したいデータを文字列に埋め込んで出力することができます。

フォーマット済み文字列リテラル

とても簡単に使えるのでオススメの方法です。
※ バージョン3.6で追加

使い方

  1. 文字列リテラルの先頭にFまたはfを付ける
  2. データを出力したい箇所に{}を記述する
  3. {}内に表示したいデータを指定する
f'{データ}'

サンプル

試しに文字列をフォーマットして出力してみます。

name = '太郎'

print(f'名前: {name}さん')

実行結果

名前: 太郎さん

直接データを指定することもできます。

print(f'名前: {"田中"}さん')

実行結果

名前: 田中さん

formatメソッド

文字列型のformatメソッドを使って文字列にデータを埋め込むことができます。

使い方

文字列に続けてformatメソッド呼び出します。文字列中に記述した{}にメソッドの引数で指定したデータが埋め込まれます。

'{}'.format(データ)

複数のデータを埋め込むこともできます。その場合、文字列中の{}と引数に指定するデータの数を合わせる必要があります。

'{} {}'.format(データ1, データ2)

{}にインデックスを指定することもできます。

'{0} {1}'.format({0}に置換されるデータ1, {1}に置換されるデータ2)

キーワードで指定することもできます。

'{keyword1} {keyword2}'.format(keyword1=データ1, keyword2=データ2)

サンプル

試しに文字列中にデータを埋め込んでみます。

name = '太郎' 
age = 20

print('名前: {}さん, 年齢: {}歳'.format(name, age))
print('名前: {0}さん, 年齢: {1}歳'.format(name, age))
print('名前: {name}さん, 年齢: {age}歳'.format(name=name, age=age))

実行結果

名前: 太郎さん, 年齢: 20歳
名前: 太郎さん, 年齢: 20歳
名前: 太郎さん, 年齢: 20歳

%記法

文字列中に記述した%s%dなどの変換指定子を変数やデータで置換することができます。

書き方

以下のように記述します。

'変換指定子' % データ

複数のデータを置換する場合は以下のように指定します。

'変換指定子1 変換指定子2' % (データ1, データ2)

サンプル

試しに文字列中にデータを埋め込んでみます。

name = '太郎' 
age = 20

print('名前: %sさん, 年齢: %d歳' % (name, age))

実行結果

名前: 太郎さん, 年齢: 20歳

アンパックしてリストや辞書を出力する

リストや辞書をアンパックしてprint関数に渡すことで、各要素をカンマ区切りで記述するのと等価の呼び出しができます。

ただし、辞書の場合はkeyのみが出力されます。

書き方

リストや辞書が代入されている変数名の先頭に*(アスタリスク)を付けて呼び出します。

print(*リスト)

print(*辞書)

サンプル

試しにアンパックして出力してみます。

l = [1, 2, 3]
print(*l)


d = {'key1': 1, 'key2': 2, 'key3': 3}
print(*d)

実行結果

1 2 3
key1 key2 key3

辞書のvalueが出力したい場合は以下のように記述します。

print(*d.values())

実行結果

1 2 3

ファイルに出力する

print関数のfile引数にファイルオブジェクトを指定することで、出力する場所をそのファイルに変更することができます。

使い方

以下のように記述します。

print(ファイルに書き込む内容, file=ファイルオブジェクト)

サンプル

試しにファイルに書き込んでみます。

# 書き込み専用でファイルを開く
fo = open('print.txt', 'w')

print('書き込む内容', file=fo)

# ファイルを閉じる
fo.close()

実行結果: print.txt

書き込む内容

このようにprint.txtに書き込むことができました。

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