Python 中的字串插值

Vaibhav Vaibhav 2023年1月30日 2022年5月18日
  1. 在 Python 中使用模 (%) 進行字串插值
  2. 在 Python 中使用 format() 方法進行字串插值
  3. 在 Python 中使用格式化字串進行字串插值
  4. 在 Python 中使用模板類進行字串插值
Python 中的字串插值

字串插值是指在字串中插入變數值代替佔位符的技術。使用字串插值,可以在字串中動態插入值。

在 Python 中,我們可以通過四種方式來執行字串插值,即取模 (%)、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 有一個內建模組 string,一個允許我們建立動態字串的類 Template。使用這種方法,我們可以執行基於 $ 的替換。

例如,對於 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

請參考以下 Python 程式碼以使用 safe_substitute() 方法。

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 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.

LinkedIn GitHub

相關文章 - Python String