Python string interpolation
String interpolation
String補間(文字列補間)とは?
これは、文字列データにプレースホルダ(値を提供できる変数)を挿入することによって、データをより動的に表す方法である.%モジュール .format() f-string 中でもf-stringが最も便利で、可読性が最も高いため、主に使用されています.
%(modulo) operator
文字列をフォーマットする方法の中で最も古いものです.
欠点は、次の表のtypeを正しく理解し、使用することです.
EscapeDescription%dまたは%i整数%f浮動小数点%s文字列%c文字%Literal'%'(文字'%'自体)
タイプが正しく区別されていない場合は、フォーマットされてエラーは発生しません.
また、文字列が長くなると可読性が悪くなります.
これらの問題を解決するために、
しかも、データ型を考えずに表示しやすい!
ただし、長い文字列が表示されると、
f-string formatting
従って、
また、以前はできなかった整数間の算術演算も可能である.
明らかに、f-stringフォーマットが最も利点があり、一般的に使用されている理由でもある.ただし、既存のコードまたは以前にPythonバージョンで作成されたコードを理解し、他の方法を学ぶ必要があります.
String補間(文字列補間)とは?
これは、文字列データにプレースホルダ(値を提供できる変数)を挿入することによって、データをより動的に表す方法である.
Python
には、以下を含む様々な方法がある.%(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バージョンで作成されたコードを理解し、他の方法を学ぶ必要があります.
Reference
この問題について(Python string interpolation), 我々は、より多くの情報をここで見つけました https://velog.io/@cmin95/Python-string-interpolationテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol