====== 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!!!!| * 参考サイト: * [[http://postd.cc/new-string-formatting-in-python/ | Pythonの新しい文字列フォーマット : %記号、str.format()から文字列補間へ | プログラミング | POSTD]] ===== その他 ===== ==== 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=",") -> 「,」で区切られて出力される) * 参考サイト: [[http://d.hatena.ne.jp/hekyou/20111224/p1 | Python3のprintを使ってみよう! - へきょのーと]] {{tag>プログラミング}}