7.入力と出力
プログラムの出力方法にはいくつかの種類があります。データを人間が読める形で出力することもあれば、将来使うためにファイルに書き込むこともあります。この章では、さまざまな出力方法について説明します。
7.1. 出力を見やすくフォーマットする
Pythonでは、出力をフォーマットするためにいくつかの方法が提供されています。
7.1.1. フォーマット済み文字列リテラル
フォーマット済み文字列リテラル(f-string)は、Pythonの式を {} 内に記述することで、その式の値を文字列に埋め込むことができます。文字列の最初に f または F を付けて使用します。
year = 2016
event = 'Referendum'
print(f'Results of the {year} {event}')
Results of the 2016 Referendum
オプションのフォーマット指定子を使用して、値の表示形式を細かく制御できます。例えば、次のコードでは、円周率を小数点以下3桁まで表示します。
import math
print(f'The value of pi is approximately {math.pi:.3f}.')
The value of pi is approximately 3.142.
7.1.2. 文字列の format() メソッド
str.format() メソッドを使用すると、出力のフォーマットをより柔軟に制御できます。{} で囲まれた部分が置換フィールドとなり、format() に渡された引数に置き換えられます。
print('We are the {} who say "{}!"'.format('knights', 'Ni'))
We are the knights who say "Ni!"
引数の順番を指定することもできます。
print('{1} and {0}'.format('spam', 'eggs'))
eggs and spam
7.1.3. 文字列の手作業でのフォーマット
手作業でフォーマットすることも可能です。
例えば、文字列を右寄せで表示するには、str.rjust() メソッドを使用します。
for x in range(1, 11):
print(repr(x).rjust(2), repr(x*x).rjust(3), repr(x*x*x).rjust(4))
1 1 1
2 4 8
3 9 27
4 16 64
5 25 125
6 36 216
7 49 343
8 64 512
9 81 729
10 100 1000
7.1.4. 古い文字列書式設定方法
古い書式設定方法として % 演算子を使う方法があります。
次の例は、%5.3f を使って円周率をフォーマットしています。
import math
print('The value of pi is approximately %5.3f.' % math.pi)
The value of pi is approximately 3.142.
7.2. ファイルを読み書きする
ファイルを開いて読み書きするには、open() 関数を使用します。
例えば、書き込み用にファイルを開く場合は次のようにします。
f = open('workfile', 'w', encoding="utf-8")
ファイルの内容を読み取るには、f.read(size) を使用します。
size は読み取るデータのサイズを指定します。
f.read()
すべての行をリストとして読み取る場合は、f.readlines() を使用します。
また、with 文を使用してファイルを操作することで、処理が終わった後に自動的にファイルを閉じることができます。
with open('workfile', encoding="utf-8") as f:
read_data = f.read()
ファイルに書き込むには、f.write(string) を使用します。
f.write('This is a test\n')
書き込んだ後は、必ず f.close() を呼び出してファイルを閉じるようにしましょう。
with 文を使用すれば、自動的にファイルが閉じられます。