この記事ではpythonのprint関数を使った文字列や数値についての様々な出力方法をまとめてみます。
関連リンク
2. 組み込み関数 — Python 3.6.5 ドキュメント
4. 組み込み型 — Python 3.6.5 ドキュメント
printの使い方
print関数はこんな感じになっています。
print(*objects, sep='', end='\n', file=sys.stdout, flush=False)
objectsをsepで区切りながらfile(デフォルトではsys.stdout)に表示し、最後にendの文字列を出力する。
私はゴリラです。
sample = "私はゴリラです。"
print(sample)
改行しないで、私はゴリラです。
pythonのprint関数はデフォルトでは改行が付け加えられるので、end
を以下のようにすると改行されないで出力されます。
print("私はゴリラです。", end="")
出力文の末尾に文字列を追加してウホウホする。
print(sample, end="ウホウホ")
リストの中身をゴリラ区切りで出力
example = ["Hello World", "Yes", "Ok"]
print(*example, sep="ゴリラ")
リストの中身を改行区切りで出力
print(*example, sep="\n")
ファイルに書き込む
print()
の引数のひとつにfile
というものがあります。これはデフォルトでfile=sys.stdout
となっています。このfile
は出力先となっているので、print()
を使ってデータをファイルに書き込むことができます。
import codecs
f = codecs.open("gorilla.txt", "w", "utf-8")
sample = "私はゴリラです。"
print(sample, file=f)
2行で書き込むことができる。
import codecs
print("私はゴリラです。", file=codecs.open("gorilla.txt", "w", "utf-8"))
%を使った出力
%を使えばフォーマットを指定して出力できます。
c言語のprintfに似ています。
整数を出力ー>%d
複数の変数を渡すには変数をタプルに入れる。
print("%d匹の子豚" % 3)
x = 3
print("%d x %d = %d" % (x, x, x*x))
print("ジェームズ・ボンド=%03d" % 7)
桁数の指定
足りない分は空白で補う。
print("ジェームズ・ボンド=%3d" % 7)
指定した桁数より変数の桁が大きい場合は変数の桁が優先される。
print("ジェームズ・ボンド=%3d" % 7777)
小数を出力ー>%f
accuracy = 0.912234009234
print("%f" % accuracy)
小数点以下2桁で出力する
print("Accuracy %.2f" % accuracy)
文字列を出力ー>%s
num = 3
string = "子豚"
print("%d匹の%s" % (num, string))
format
を使ってフォーマットを出力する。{}に値を埋め込みます。
print("I am {}.".format("gorilla"))
複数の値を指定したところに入れる
x = "です"
y = "ウホウホ"
gorilla = "私はゴリラ{0}。{1}したい{0}。そう{0}ね。".format(x, y)
print(gorilla)
{}にインデックスを指定すると、formatの中身の順番通りに出力される。
{}にキーワードを指定して出力する。
print("私は{gorilla}です。".format(gorilla="ゴリラ"))
print("ジェームズ・ボンド={:03d}".format(7))
小数点以下の桁数を指定
print("Accuracy {:.2f}".format(0.3456789))
左寄せ
print("左に寄せる -> {:<10s}したいな。".format("ウホウホ"))
中央寄せ
print("中央に寄せる-> {:^10s}したいな。".format("ウホウホ"))
埋める文字を指定してからの中央に寄せてウホウホする。
下の例では、*を埋める文字に指定している。(※埋める文字は1文字しか指定できないみたい。)
print("{:*^10}".format("ウホウホ"))
右に寄せる
print("右に寄せる -> {:>10s}したいな。".format("ウホウホ"))
%を使う
print("Accuracy {:.2%}".format(0.3456789))
print("Accuracy {:.0%}".format(0.3456789))
{}を出力する
print("私は{{}}です。".format("ゴリラ"))
書式を指定
print("{name}={code:03d}".format(name="ジェームズ・ボンド", code=7))
f記法
python 3.6から追加された機能。
x = 3
print(f"{x}x{x}={x*x}")
試しにウホウホ
先頭にfをつける。
say = "ウホウホ"
gorilla = f"{say}したいです。"
print(gorilla)
めっちゃウホウホしたいです。
say = ["めっちゃ", "ウホ", "ウホ"]
gorilla = f"{''.join(say)}したいです。"
print(gorilla)
右寄せと左寄せ
left = "左"
print(f"{'右':>5s}のゴリラがいいなぁ")
print(f"いや、俺は{left:<5s}のゴリラがいいな。")