Python 3の文字列フォーマット文法を詳しく説明します。


一、古い文字列のフォーマット
%操作子
以下の例を参照してください。

>>> name = "Eric"
>>> "Hello, %s." % name
'Hello, Eric.'
複数の変数が文字列に挿入される必要がある場合:

>>> name = "Eric"
>>> age = 74
>>> "Hello, %s. You are %s." % (name, age)
'Hello, Eric. You are 74.'
置換が必要な変数がさらに増えたときに使用します。 % オペレータが文字列をフォーマットすると、コードの可読性が悪くなります。

>>> first_name = "Eric"
>>> last_name = "Idle"
>>> age = 74
>>> profession = "comedian"
>>> affiliation = "Monty Python"
>>> "Hello, %s %s. You are %s. You are a %s. You were a member of %s." % (first_name, last_name, age, profession, affiliation)
'Hello, Eric Idle. You are 74. You are a comedian. You were a member of Monty Python.'
str.format()
str.formatは正しいです % 方式の改良は、一般的な関数で呼び出される文法を使用しており、オブジェクト自体を定義することによって、 __format()メソッドは文字列書式設定の具体的な挙動を制御します。
基本的な使い方:

>>> name = "Eric"
>>> age = 74
>>> "Hello, {}. You are {}.".format(name, age)
'Hello, Eric. You are 74.'
str.format()に対して % 操作はより強い柔軟性を持っています。たとえば、文字列に置き換えられた変数は、数値索引によって関連付けられます。

>>> name = "Eric"
>>> age = 74
>>> "Hello, {1}. You are {0}.".format(age, name)
'Hello, Eric. You are 74.'
コードの可読性を高めるために、 {} には、具体的な意味を持つパラメータ名も使用できます。

>>> name = "Eric"
>>> age = 74
>>> "Hello, {name}. You are {age}".format(name=name, age=age)
'Hello, Eric. You are 74'
辞書構造のデータ:

>>> person = {'name': 'Eric', 'age': 74}
>>> "Hello, {name}. You are {age}.".format(name=person['name'], age=person['age'])
'Hello, Eric. You are 74.'
またはより簡潔な方法:

>>> person = {'name': 'Eric', 'age': 74}
>>> "Hello, {name}. You are {age}.".format(**person)
'Hello, Eric. You are 74.'
問題は、置換が必要な変数が多い場合、 str.format()方式は依然としてコードが長すぎるようになります。

>>> first_name = "Eric"
>>> last_name = "Idle"
>>> age = 74
>>> profession = "comedian"
>>> affiliation = "Monty Python"
>>> "Hello, {first_name} {last_name}. You are {age}. \
 You are a {profession}. You were a member of {affiliation}."\
 .format(first_name=first_name, last_name=last_name, age=age, \
 profession=profession, affiliation=affiliation)
'Hello, Eric Idle. You are 74. You are a comedian. You were a member of Monty Python.'
二、f-string
基本的な使い方

>>> name = "Eric"
>>> age = 74
>>> f"Hello, {name}. You are {age}."
'Hello, Eric. You are 74.'
埋め込み式

>>> f"{2 * 37}"
'74'

>>> def to_lowercase(input):
...  return input.lower()
 
>>> name = "Eric Idle"
>>> f"{to_lowercase(name)} is funny"
'eric idle is funny'

>>> f"{name.lower()} is funny"
'eric idle is funny'
f−stringでは、あるオブジェクトのインスタンスを直接的に組み込むこともでき、その内部で実現されている限り、 __strまたは __プレス.方法:

class Comedian:
 def __init__(self, first_name, last_name, age):
  self.first_name = first_name
  self.last_name = last_name
  self.age = age

 def __str__(self):
  return f"{self.first_name} {self.last_name} is {self.age}"


new_comedian = Comedian("Eric", "Idle", 74)
print(f"{new_comedian}")
# Eric Idle is 74
   f-string
>>> name = "Eric"
>>> profession = "comedian"
>>> affiliation = "Monty Python"
>>> message = (
...  f"Hi {name}. "
...  f"You are a {profession}. "
...  f"You were in {affiliation}."
... )
>>> message
'Hi Eric. You are a comedian. You were in Monty Python.'
締め括りをつける
以上は小编でご绍介したPython 3の文字列フォーマット文法です。皆さんに助けてほしいです。もし何かご质问がありましたら、メッセージをください。小编はすぐにご返事します。ここでも私たちのサイトを応援してくれてありがとうございます。
本文があなたのためになると思ったら、転載を歓迎します。出所を明記してください。ありがとうございます。