Python 関数: print
概要
- Python で端末画面などに文字を表示するための関数
使い方
print(MESSAGE, end = "改行文字", sep = "区切り文字")
MESSAGE
: 画面に出力する文字列end = “改行文字”
:- 指定しなくても有効になっており、改行文字には改行コードが指定されている
- 改行文字を “” (空文字) にすることで、改行を抑制できる
sep = “区切り文字”
:- 指定しなくても有効になっており、区切り文字にはスペースが指定されている
- 区切り文字は、
MESSAGE
をスペースで区切って複数指定する際に入る文字である
Tips
C 言語の printf のようにフォーマットを指定する方法
- 2 種類 (2017/02/22 時点) の方法が可能である
- %演算子を使う方法
print("%s %f %d" % (foo, hoge, fuga))
- 文字列と変数群を % で区切って指定する
- 古くからある方法であり、近年廃止も検討されているらしい
- str.format() 関数を使う方法
print("{0} {1} {a}".format("foo", "hoge", a = 20))
- %演算子を使う方法と似ているが、format 関数を使うのと、フォーマット形式が異なる
- フォーマットの基本
{0}, {1}, {2}, …
: positional 変数- format() 関数内で指定する変数の順番 (インデックス) の番号と
{}
内の番号が対応している - printf の使い方に近い
{a}, {hoge}, …
: optional 変数- format() 関数内で変数を指定し、その変数名と
{}
内の文字が対応している
- フォーマットの型を指定する場合
- それぞれのフォーマットの後ろに
:
とそれぞれのフォーマット型の記号を付ける
a = 20 print("{0:f} {0:e}".format(a)) 20.000000 2.000000e+01
- 何も指定しない場合は、自動的に
s
(文字列) になっている - 浮動小数点型や指数型の場合は
f
やe
の前に.桁数
を付けることで、小数点以下の桁数を調整できる
- 空白で調整する場合
- それぞれのフォーマットの後ろに
^
(中央揃え) や>
(右寄せ)、<
(左寄せ) を付け、全体の文字数を指定する
a = 20 print("|{0:^10}|".format(a)) | 20 | print("|{0:>10}|".format(a)) | 20| print("|{0:<10}|".format(a)) |20 |
- 空白以外の文字 (0 や ! など) で埋める場合は、
:
の直後に入れたい文字を入力する
a = 20 print("|{0:*<10}|".format(a)) |20********| print("|{0:!<10}|".format(a)) |20!!!!!!!!|
- 混ぜるとこんな感じ
a = 20 print("|{0:!<10.3f}|".format(a)) |20.000!!!!|
- 参考サイト:
その他
Python 2.x と Python3.x の違い
- 2.x までは print 文で、print の後は文字列を指定できた (print “str”)
- デフォルトは str の後に改行が入る
- 改行をしない場合は、末尾に「,」を付ける
- 複数の値をカンマで区切ると、値の間にスペースが入った状態で出力される
- 3.x は、print 関数となり、括弧が必要になった (print(“str”))
- 複雑な表現が可能になった? (end とか sep とか)
- end: 末尾に加える文字を指定する (例: print(“str”, end=“”) → 改行しないで出力)
- sep: 値をカンマで区切って出力する際、値の間の文字列を指定する (例: print(hoge,foo,sep=“,”) → 「,」で区切られて出力される)