Python string interpolation


String interpolation
String補間(文字列補間)とは?
これは、文字列データにプレースホルダ(値を提供できる変数)を挿入することによって、データをより動的に表す方法である.Pythonには、以下を含む様々な方法がある.
  • %モジュール
  • .format()
  • f-string
  • 中でもf-stringが最も便利で、可読性が最も高いため、主に使用されています.
    %(modulo) operator
    文字列をフォーマットする方法の中で最も古いものです.
    欠点は、次の表のtypeを正しく理解し、使用することです.
    EscapeDescription%dまたは%i整数%f浮動小数点%s文字列%c文字%Literal'%'(文字'%'自体)
    タイプが正しく区別されていない場合は、フォーマットされてエラーは発生しません.
    >>> greeting = "Hi, %s. You have $%d." % ("James",'10')
    Traceback (most recent call last):
      File "<pyshell#25>", line 1, in <module>
        greeting = "Hi, %s. You have $%d." % ("James",'10')
    TypeError: %d format: a number is required, not str
    タイプが'10'strでエラーが発生しました
    また、文字列が長くなると可読性が悪くなります.
    >>> name1 = "James"
    >>> bot1 = "Tom"
    >>> bot2 = "Jerry"
    >>> price1 = 100
    >>> price2 = 150
    >>> product_intro = "Hello, %s. The name of this bot is %s.
      The price is $%d. Another is %s, $%d." % (name1, bot1, price1,
      bot2, price2)
    >>> print(product_intro)
    Hello, James. The name of this bot is Tom. The price is $100.
    Another is Jerry, $150.
    .format() method
    これらの問題を解決するために、python 3.0以上から始まる.format()メソッドが追加されました.
    >>> greeting = "Hi, {1}. You have ${0}.".format(10,"James")
    >>> print(greeting)
    Hi, James. You have $10.
    順序を調整することができ,毒性の改善が確認できた.
    しかも、データ型を考えずに表示しやすい!
    ただし、長い文字列が表示されると、
    >>> name1 = "James"
    >>> bot1 = "Tom"
    >>> bot2 = "Jerry"
    >>> price1 = 100
    >>> price2 = 150
    >>> product_intro = "Hello, {name1}. The name of this bot
      is {bot1}. The price is ${price1}. Another is {bot2},
      ${price2}.".format(name1=name1, bot1=bot1, price1=price1,
      bot2=bot2, price2=price2)
    >>> print(product_intro)
    Hello, James. The name of this bot is Tom. The price is $100.
    Another is Jerry, $150.
    まだ一目ではわからない欠点がある.
    f-string formatting
    従って、python 3.6以降に出現するf-stringによるフォーマットは、可読性を改善し、使い勝手が非常に便利であるという利点がある.(しかも、演算速度も一番速い!)
    >>> name1 = "James"
    >>> bot1 = "Tom"
    >>> bot2 = "Jerry"
    >>> price1 = 100
    >>> price2 = 150
    >>> product_intro = f"Hello, {name1}. The name of this bot
      is {bot1}. The price is ${price1}. Another is {bot2},
      ${price2}."
    >>> print(product_intro)
    Hello, James. The name of this bot is Tom. The price is $100.
    Another is Jerry, $150.
    変数を別途指定する必要はなく、文字列内の変数が機能します.
    また、以前はできなかった整数間の算術演算も可能である.
    >>> total_price = f"total : {price1 + price2}"
    >>> print(total_price)
    total : 250
    Pythonは文字列補間を様々な方法でサポートしています.
    明らかに、f-stringフォーマットが最も利点があり、一般的に使用されている理由でもある.ただし、既存のコードまたは以前にPythonバージョンで作成されたコードを理解し、他の方法を学ぶ必要があります.