📜  Python字符串插值

📅  最后修改于: 2022-05-13 01:55:41.604000             🧑  作者: Mango

Python字符串插值

字符串插值是将变量的值替换为字符串中的占位符的过程。让我们考虑一个例子来更好地理解它,假设您想在每次打印字符串时更改字符串的值,就像您想打印“hello welcome to geeksforgeeks”一样,其中 是名称的占位符的用户。 Python中的字符串插值不是每次都创建一个新字符串,而是可以帮助您使用用户名动态更改占位符。

Python 字符串插值

% – 格式化

% – 格式化是Python提供的一项功能,可以使用 %运算符进行访问。这类似于 C 中的 printf 样式函数。

示例:使用 %运算符格式化字符串

Python3
# Python program to demonstrate
# string interpolation
 
 
n1 = 'Hello'
n2 = 'GeeksforGeeks'
 
# for single substitution
print("Welcome to % s" % n2)
 
# for single and multiple substitutions()
# mandatory
print("% s ! This is % s." % (n1, n2))


Python3
# Python program to demonstrate
# string interpolation
 
 
n1 = 'Hello'
n2 = 'GeeksforGeeks'
 
# for single substitution
print('{}, {}'.format(n1, n2))


Python3
n1 = "Hello"
n2 = "GeeksForGeeks"
 
# for single or multiple substitutions
# let's say b1 and b2 are formal parameters
# and n1 and n2 are actual parameters
print("{b1}! This is {b2}.".format(b1=n1, b2=n2))
 
# we can also change the order of the
# variables in the string without changing
# the parameters of format function
print("{b2}! This is {b1}.".format(b1=n1, b2=n2))


Python3
# Python program to demonstrate
# string interpolation
 
 
n1 = 'Hello'
n2 = 'GeeksforGeeks'
 
# f tells Python to restore the value of two
# string variable name and program inside braces {}
print(f"{n1}! This is {n2}")


Python3
a = 2
b = 3
c = 10
 
print(f"({a} * {b})-{c} = {(2 * 3)-10}")


Python3
# Python program to demonstrate
# string interpolation
 
 
from string import Template
 
n1 = 'Hello'
n2 = 'GeeksforGeeks'
 
# made a template which we used to
# pass two variable so n3 and n4
# formal and n1 and n2 actual
n = Template('$n3 ! This is $n4.')
 
# and pass the parameters into the template string.
print(n.substitute(n3=n1, n4=n2))


输出
Welcome to GeeksforGeeks
Hello ! This is GeeksforGeeks.

假设它只是一个复杂的版本,但是如果我们有很多变量要在字符串中替换,我们可以使用它,因为我们并不总是想使用(“字符串” + variable + “字符串” + variable + variable + “字符串”)这个表示。因此,为此,我们可以使用 %-formatting。

注意:要了解有关 %-formatting 的更多信息,请参阅Python中的字符串格式化使用 %

字符串格式()

str.format() 通过将一对花括号 { } 定义的一个或多个替换字段和占位符放入一个字符串中来工作。我们希望放入占位符并与作为参数传递给格式函数的字符串连接的值。

示例:使用 format() 方法格式化字符串

Python3

# Python program to demonstrate
# string interpolation
 
 
n1 = 'Hello'
n2 = 'GeeksforGeeks'
 
# for single substitution
print('{}, {}'.format(n1, n2))
输出
Hello, GeeksforGeeks

我们也可以在花括号 {} 中使用变量名。这将允许我们以我们想要的任何顺序使用格式函数的参数。

示例:使用大括号内的变量格式化函数。

Python3

n1 = "Hello"
n2 = "GeeksForGeeks"
 
# for single or multiple substitutions
# let's say b1 and b2 are formal parameters
# and n1 and n2 are actual parameters
print("{b1}! This is {b2}.".format(b1=n1, b2=n2))
 
# we can also change the order of the
# variables in the string without changing
# the parameters of format function
print("{b2}! This is {b1}.".format(b1=n1, b2=n2))
输出
Hello! This is GeeksForGeeks.
GeeksForGeeks! This is Hello.

注意:要了解更多关于 str.format() 的信息,请参阅Python中的 format()函数

f弦

PEP 498 引入了一种新的字符串格式化机制,称为字面量字符串插值或更常见的 F 字符串(因为字符串字面量量之前的前导 f字符)。 f-strings 背后的想法是使字符串插值更简单。

要创建 f 字符串,请在字符串加上字母“ f ”。字符串本身的格式化方式与使用 str.format() 的方式大致相同。 F-strings 提供了一种简洁方便的方式来将Python表达式嵌入到字符串字面量中以进行格式化。

示例:使用 f 字符串格式化字符串

Python3

# Python program to demonstrate
# string interpolation
 
 
n1 = 'Hello'
n2 = 'GeeksforGeeks'
 
# f tells Python to restore the value of two
# string variable name and program inside braces {}
print(f"{n1}! This is {n2}")
输出
Hello! This is GeeksforGeeks
(2 * 3)-10 = -4

我们还可以使用 f-strings 来计算一些算术运算,它会执行内联算术。请参阅下面的示例 -

示例:使用 f 字符串的内联算术

Python3

a = 2
b = 3
c = 10
 
print(f"({a} * {b})-{c} = {(2 * 3)-10}")
输出
(2 * 3)-10 = -4

注意:要了解更多关于 f-strings 的信息,请参阅Python中的 f-strings

字符串模板类

在字符串模块中,模板类允许我们为输出规范创建简化的语法。该格式使用由 $ 组成的占位符名称和有效的Python标识符(字母数字字符和下划线)。用大括号包围占位符允许它后面跟更多的字母数字字母,中间没有空格。编写 $$ 会创建一个转义的 $:

示例:使用模板类格式化字符串

Python3

# Python program to demonstrate
# string interpolation
 
 
from string import Template
 
n1 = 'Hello'
n2 = 'GeeksforGeeks'
 
# made a template which we used to
# pass two variable so n3 and n4
# formal and n1 and n2 actual
n = Template('$n3 ! This is $n4.')
 
# and pass the parameters into the template string.
print(n.substitute(n3=n1, n4=n2))
输出
Hello ! This is GeeksforGeeks.

注意:要了解更多关于字符串模板类的信息,请参考Python中的字符串模板类