1. 基本
  2. 複数行の文字列出力(ヒアドキュメント)
    • 文字コード

    基本

    print関数は文字列などをコンソール出力する場合に使用します。 カンマで区切って複数の文字列を一度に出力することもできます。 ただし、カンマで区切った箇所はスペースが入ります。 Python2は以下のようになります。

    print "A","B","C"   # Python2

    Python3の場合、以下のようになります。 Python2ではprint関数にカッコは必要ありませんでしたが、Python3ではカッコが必須になりました。

    print("A", "B", "C")   # Python3

    Python2とPython3の出力結果は同じで、以下のようになります。

    A B C

    • 改行の有無

    • printではデフォルトで改行します。 改行が不要な場合は明示する必要があります。

      Python2でデフォルトの改行を無しにする場合、print行の最後にカンマ "," を付けます。

      print "abcd",

      Python3の場合は、引数の最後に "end=''" を追加します。

      print(’abcd', end='')

    • 数値の書式付

    • 変数が1つの場合

      a = 1234
      print("a = %d" % a)

      変数が複数の場合

      a = 1234
      b = 98.76
      print("a = %d,  b = %f" % (a, b))         #=>  a = 1234,  b = 98.760000

      出力を整形する場合は以下のようになります。

      #指定なし
      print("a = %d,  b = %f" % (a, b))         #=>  a = 1234,  b = 98.760000
      
      #桁数の指定
      print("a = %06d,  b = %.3f" % (a, b))     #=>  a = 001234,  b = 98.760
      
      #左寄せ(-)
      print("a = %-06d, b = %-.3f" % (a, b))    #=>  a = 1234  , b = 98.760
      
      #符号を付ける(+)
      print("a = %+-06d, b = %+.3f" % (a, b))   #=>  a = +1234 , b = +98.760
      実行結果は以下になります。
      a = 1234,  b = 98.760000
      a = 001234,  b = 98.760
      a = 1234  , b = 98.760
      a = +1234 , b = +98.760

    • 文字列の書式付

    • 文字列の場合は以下のようになります。

      s = u'あいうえお'
      print("aiueo: %s" % s)
      print("aiueo: %10s" % s)
      print("aiueo: %-10s" % s)
      実行結果は以下になります。
      aiueo: あいうえお
      aiueo:      あいうえお
      aiueo: あいうえお

    複数行の文字列出力(ヒアドキュメント)

    ヒアドキュメントのように、複数行の文字列を出力したい場合、トリプルクォテーション(""")が使えます。

    print """frist line
    second line
    third line"""

      文字コード

      文字コードによっは文字化けをしますので、その場合、以下のような方法で文字化けを回避します。

      • 文字列定義でuを使用

      • Windows上では、スクリプトがUTF-8の場合、以下のように日本語文字列を定義します。

        # -*- coding: utf8 -*-
        
        str = u'あいうえお'
        print str		

        Python2は、文字列定義で u が無い場合、decode しないとWindowsでは文字化けしまいます。

        # -*- coding: utf8 -*-
        str = 'あいうえお'
        print str        #=>  縺ゅ>縺・∴縺    (文字化け)
        print str.decode('utf8', 'ignore')   #=>  あいうえお (正常)