Python - 字符串格式化
Python 中的字符串格式化是通过在已有字符串中插入数值表达式的值来动态构建字符串表示的过程。Python 的字符串连接运算符不支持非字符串操作数。因此,Python 提供了以下字符串格式化技术 —
使用 % 运算符
使用 str class 的 format() 方法
使用 f-string
使用 String Template class
使用 % 运算符
"%"(模)运算符通常被称为字符串格式化运算符。它接受一个格式字符串以及一组变量,并将它们组合成一个字符串,其中包含以指定方式格式化的变量值。
示例
要使用 "%" 运算符将字符串插入到格式字符串中,我们使用 "%s",如下例所示 —
name = ""
print("Welcome to %s!" % name)
它将产生以下输出 —
Welcome to !
使用 format() 方法
它是 str class 的内置方法。format() 方法通过在字符串中使用花括号 "{}" 定义占位符来工作。这些占位符随后被方法参数中指定的值替换。
示例
在下面的示例中,我们使用 format() 方法动态地将值插入到字符串中。
str = "Welcome to {}"
print(str.format(""))
运行上述代码将产生以下输出 —
Welcome to
使用 f-string
f-string(也称为格式化字符串字面量)用于在字符串字面量中嵌入表达式。f-string 中的 "f" 表示 formatted,在字符串前添加它即可创建 f-string。字符串中的花括号 "{}" 则作为占位符,用变量、表达式或函数调用来填充。
示例
以下示例说明了 f-string 与表达式的使用。
item1_price = 2500
item2_price = 300
total = f'Total: {item1_price + item2_price}'
print(total)
上述代码的输出如下 —
Total: 2800
使用 String Template class
String Template class 属于 string 模块,提供了一种使用占位符格式化字符串的方法。此处,占位符由美元符号 ($) 后跟标识符定义。
示例
以下示例展示了如何使用 Template class 格式化字符串。
from string import Template # 定义模板字符串 str = "Hello and Welcome to $name !" # 创建 Template 对象 templateObj = Template(str) # 现在提供值 new_str = templateObj.substitute(name="") print(new_str)
它将产生以下输出 —
Hello and Welcome to !