文字列をフォーマットするときは、%ではなくformat()方式を使用します.


Pythonに内蔵されている% format() は、文字列のフォーマットに使用できます.
文字列形式で演算子を設定します.パーセント記号% 変換説明子によって規定されたフォーマットに従ってフォーマットされた文字列の列を返し、変換説明子の基本形式は:%[ ][ [. ]] である.
%オペレータが文字列をフォーマットする場合、次のような一般的な使用法があります.
  • 直接フォーマット文字または数値
  • は、
  • をタプルとしてフォーマットする.
  • 辞書形式でフォーマット
  • print("The %s is a kind of %s." % ('apple', 'fruit'))   # The apple is a kind of fruit.
    
    
    person = {"name": "watkins", "address": "siso"}
    print("The address of %(name)s is %(address)s." % person)   # The address of watkins is siso.
    

    文字列呼び出し方法format
    print("The age of {name} is {age:02d}".format(name='watkins', age=5))   # The age of watkins is 05
    
    format() フォーマット文字列の呼び出しフォーマットは、"{ ! : }.format()"です.現在サポートされている変換フラグ文字には、r(repr)、s(str)、a(ascii)が含まれます.
    フォーマット・ディスクリプタでよく使用される呼び出し方法は、[[ ] ][ ][#][0][ ][,][. ][ ]です.
    文字列フォーマットでの変換タイプ
    を選択します.
    意味b
    整数をバイナリとして表すc
    整数をUnicodeコードポイントとして解読d
    整数を10進数として処理します.これは整数のデフォルトで使用される説明子です.e
    科学的表現を用いて小数を表す(eで指数を表す)f
    小数を定数として表すg
    定点表現法と科学表現法の間で自動的に選択されます.これは小数にデフォルトで使用される説明子ですが、デフォルトでは少なくとも1桁の小数があります.o
    整数を8進数で表すs
    文字列のフォーマットは変更されません.これはデフォルトで文字列に使用される説明子です.x
    整数を16進数で表し、小文字で表す%
    数をパーセントで表す
    format()メソッドのいくつかの一般的な使い方は以下の通りです.
  • 位置符号
  • を用いる.
  • 使用名
  • 属性
  • を通過
  • フォーマットメタグループの具体的な項目
  • #                 ,         
    print("{3} {0} {2} {1} {3} {0}".format('be', 'not', 'or', 'to'))    # to be or not to be
    
    #            ,   f   ——        f
    from math import e
    print(f"Euler's constant is roughly {e:05.2f}") # Euler's constant is roughly 02.72
    
    #       、      ,      ^
    print("{pi:$^8.2f}".format(pi=3.141592))   # $$3.14$$
    print("{sale:,.2f}".format(sale=20190328.1227)) # 20,190,328.12
    
    #               ,         。
    print("{bn:#b}".format(bn=28))  # 0b11100
    

    %オペレータではなくformat方式を使用して文字列をフォーマットする理由は、次のとおりです.
  • format方式は%オペレータよりも柔軟な
  • を使用する.
  • format方式は、パラメータとして容易に伝達できる
  • .
  • %は最終的にformat()方式に取って代わられる.
  • %の方法は、特定の場合に特に注意する必要がある.
  •  #   %       ,   (name, )     
     name = ("watkins", "uself")
    
     # TypeError: not all arguments converted during string formatting
     print("the names is %s" % (name))   
    
     print("the names is %s" % (name, )) # the names is ('watkins', 'uself')
    

    (最近更新:2019年04月11日)