python:print

Python 関数: print

  • Python で端末画面などに文字を表示するための関数
print(MESSAGE, end = "改行文字", sep = "区切り文字")
  • MESSAGE: 画面に出力する文字列
  • end = “改行文字”:
    • 指定しなくても有効になっており、改行文字には改行コードが指定されている
    • 改行文字を “” (空文字) にすることで、改行を抑制できる
  • sep = “区切り文字”:
    • 指定しなくても有効になっており、区切り文字にはスペースが指定されている
    • 区切り文字は、MESSAGE をスペースで区切って複数指定する際に入る文字である
  • 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 (文字列) になっている
      • 浮動小数点型や指数型の場合は fe の前に .桁数 を付けることで、小数点以下の桁数を調整できる
    • 空白で調整する場合
      • それぞれのフォーマットの後ろに ^(中央揃え) や > (右寄せ)、< (左寄せ) を付け、全体の文字数を指定する
        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!!!!|
  • 2.x までは print で、print の後は文字列を指定できた (print “str”)
    • デフォルトは str の後に改行が入る
    • 改行をしない場合は、末尾に「,」を付ける
    • 複数の値をカンマで区切ると、値の間にスペースが入った状態で出力される
  • 3.x は、print 関数となり、括弧が必要になった (print(“str”))
    • 複雑な表現が可能になった? (end とか sep とか)
      • end: 末尾に加える文字を指定する (例: print(“str”, end=“”) → 改行しないで出力)
      • sep: 値をカンマで区切って出力する際、値の間の文字列を指定する (例: print(hoge,foo,sep=“,”) → 「,」で区切られて出力される)
  • python/print.txt
  • 最終更新: 2017/02/22 18:16
  • by mumeiyamibito