Python での文字列補間

Vaibhav Vaibhav 2023年10月10日
  1. Python でモジュロ(%)を使用した文字列補間
  2. Python で format() メソッドを使用した文字列補間
  3. Python でフォーマットされた文字列を使用した文字列補間
  4. Python のテンプレートクラスを使用した文字列補間
Python での文字列補間

文字列補間とは、文字列のプレースホルダーの代わりに変数の値を挿入する手法を指します。文字列補間を使用すると、文字列内に値を動的に挿入できます。

Python では、文字列補間を実行する方法が 4つあります。つまり、モジュロ(%)、format() メソッド、フォーマットされた文字列、およびテンプレートクラスです。この記事では、これらの方法について詳しく学習します。

Python でモジュロ(%)を使用した文字列補間

Python で文字列をフォーマットするためにモジュロ(%)を使用できます。このアプローチは、C プログラミング言語の printf() に似ています。

以下は、フォーマットのために文字列内で使用できるプレースホルダーです。

%d = Integer
%f = Float
%s = String
%x = Hexadecimal
%o = Octal

プレースホルダーと見なされるには、文字列内の文字の前にモ​​ジュロ文字を配置する必要があることに注意してください。以下は、モジュロ(%)を使用するための構文です。

"<string with placeholders>" % ( < comma separated values or variables > )

これで、簡単な紹介は終わりです。いくつかの例を参考にして、この概念を実際に使用する方法を理解しましょう。これについては、次の Python コードを参照してください。

a = 2000
b = "Hi"
c = "Python"
d = True
e = 3.14
print("%d + 1000 = 3000" % (a))
print("%s is a web framework written in %s" % ("Django", c))
print("[%d, %s, %s, %s, %f]" % (a, b, c, d, e))
print("%s! My favourite programming language is %s" % (b, c))
print("The value of PI or π: %f" % (e))

出力:

2000 + 1000 = 3000
Django is a web framework written in Python
[2000, Hi, Python, True, 3.140000]
Hi! My favourite programming language is Python
The value of PI or π: 3.140000

書式設定のために文字列内でプレースホルダーがどのように使用されているか、およびどの種類の値にどのプレースホルダーが使用されているかに注意してください。

Python で format() メソッドを使用した文字列補間

format() メソッドは、Python で文字列をフォーマットするために使用できます。この方法は前の方法と似ていますが、ここでは、{} がすべてのタイプの値のプレースホルダーとして機能します。

以下は、format() メソッドの構文です。

"<string with placeholdes>".format( < comma separated values and variables > )

いくつかの関連する例を参考にして、この概念をよりよく理解するには、次の Python コードを参照してください。

a = 2000
b = "Hi"
c = "Python"
d = True
e = 3.14
print("{} + 1000 = 3000".format(a))
print("{} is a web framework written in {}".format("Django", c))
print("[{}, {}, {}, {}, {}]".format(a, b, c, d, e))
print("{}! My favourite programming language is {}".format(b, c))
print("The value of PI or π: {}".format(e))

出力:

2000 + 1000 = 3000
Django is a web framework written in Python
[2000, Hi, Python, True, 3.14]
Hi! My favourite programming language is Python
The value of PI or π: 3.14

Python でフォーマットされた文字列を使用した文字列補間

フォーマットされた文字列は、Python の一意の文字列です。接頭辞 f 文字を付けると、通常の文字列はフォーマットされた文字列になります。

フォーマットされた文字列は、f 文字列とも呼ばれます。これらの文字列は、変数およびオブジェクトの文字列表現を文字列内に動的に挿入するために使用されます。

文字列内に {} を追加でき、これらのブロック内に、何らかの値を返す変数またはロジックを追加できます。

以下は、フォーマットされた文字列の構文です。

f"{<variable>} {<variable>} {<variable>}"

いくつかの関連する例を使用して、この概念を理解しましょう。同じことについては、次の Python コードを参照してください。

def hello():
    return "Hello"


a = 2000
b = "Hi"
c = "Python"
d = True
e = 3.14
print(f"{a} + 1000 = 3000")
print(f"Django is a web framework written in {c}")
print(f"[{a}, {b}, {c}, {d}, {e}]")
print(f"{hello()}! My favourite programming language is {c}")
print(f"The value of PI or π: {e}")
print(f"1000 + 2000 = {1000 + 2000}")
print(f"10 * 20 - 25 = {10 * 20 - 25}")

出力:

2000 + 1000 = 3000
Django is a web framework written in Python
[2000, Hi, Python, True, 3.14]
Hello! My favourite programming language is Python
The value of PI or π: 3.14
1000 + 2000 = 3000
10 * 20 - 25 = 175

Python のテンプレートクラスを使用した文字列補間

Python には、動的な文字列を作成できるクラス Template であるモジュール string が組み込まれています。この方法を使用すると、$ ベースの置換を実行できます。

たとえば、Hello $name 文字列の場合、name は変数であり、この変数に値を指定できます。Template クラスの substitute() を使用して、値を置き換えることができます。

このメソッドは、テンプレート文字列の変数がキーであり、値を指す辞書を受け入れます。辞書を使用する代わりに、キーワード引数を提供することもできます。

キーが見つからない場合、Python インタープリターは KeyError をスローすることに注意してください。これを回避するには、必要なキーが辞書に存在することを確認するか、safe_substitute() メソッドを使用して、そのプレースホルダーの文字列を変更しないでください。

いくつかの理論が完成したので、いくつかの関連する例を使用して、この概念を理解しましょう。同じことについては、次の Python コードを参照してください。

from string import Template


def pi():
    return 3.14


t1 = Template("$a + 1000 = 3000")
t2 = Template("$package is a web framework written in $language")
t3 = Template("$greeting! My favourite programming language is $language")
t4 = Template("[$a, $b, $c, $d, $e]")
t5 = Template("The value of PI or π: $pi")
print(t1.substitute({"a": 2000}))
print(t2.substitute({"package": "Flask", "language": "Python"}))
print(t3.substitute({"greeting": "Hey", "language": "Python"}))
print(t4.substitute(a=2000, b="Hi", c="Python", d=True, e=999.909))
print(t5.substitute(pi=pi()))

出力:

2000 + 1000 = 3000
Flask is a web framework written in Python
Hey! My favourite programming language is Python
[2000, Hi, Python, True, 999.909]
The value of PI or π: 3.14

safe_substitute() メソッドを使用するには、次の Python コードを参照してください。

from string import Template


def pi():
    return 3.14


t1 = Template("$a + 1000 = 3000")
t2 = Template("$package is a web framework written in $language")
t3 = Template("$greeting! My favourite programming language is $language")
t4 = Template("[$a, $b, $c, $d, $e]")
t5 = Template("The value of PI or π: $pi")
print(t1.safe_substitute({}))
print(t2.safe_substitute({"package": "Flask"}))
print(t3.safe_substitute({"language": "Python"}))
print(t4.safe_substitute(c="Python", d=True, e=999.909))
print(t5.safe_substitute())

出力:

$a + 1000 = 3000
Flask is a web framework written in $language
$greeting! My favourite programming language is Python
[$a, $b, Python, True, 999.909]
The value of PI or π: $pi
著者: Vaibhav Vaibhav
Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.

関連記事 - Python String