Python基础 - 字符串格式化方式
字符串格式化是指将变量等信息按照指定的格式嵌入到字符串中,使其符合特定的显示要求。
Python中字符串格式化方式一般有以下几种:
- 字符串拼接
- 使用 % 操作符
- 使用 str.format()
- 使用 f-string
字符串拼接
字符串拼接是最简单的字符串格式化方式,通过使用加号 + 将多个字符串片段拼接在一起。
def format_output_by_str_concat(name: str, age: int) -> str:
"""
以特定的格式返回包含 name 和 age 的字符串
通过传统的字符串拼接实现,写起来相对麻烦。
"""
formatted_string = "Name: " + name + ", Age: " + str(age)
return formatted_string
使用 % 操作符
Python 早期的字符串格式化方式,类似于 C 语言的 printf。
例如:
%d 表示十进制整数
%x 表示十六进制整数
%f 表示浮点数
%s 表示字符串
def format_output_by_c_style(name: str, age: int) -> str:
"""
以特定的格式返回包含 name 和 age 的字符串
采用类似C语言风格的字符串格式化方法。
"""
formatted_string = "Name: %s, Age: %d" % (name, age)
return formatted_string
使用 str.format()
str.format() 是 Python 2.6 引入的字符串格式化方法,比 % 操作符更灵活。
str.format() 使用 {} 作为变量的占位符,变量名作为 str.format() 的参数。
def format_output_by_str_format(name: str, age: int) -> str:
"""
以特定的格式返回包含 name 和 age 的字符串
使用 str.format() 进行字符串格式化。
"""
formatted_string = "Name: {}, Age: {}".format(name, age)
return formatted_string
使用 f-string
f-string 是 Python 3.6 引入的一种简洁且高效的字符串格式化方式,也称为插值格式字符串。
f-string 使用 f 作为字符串前缀,使用 {} 作为变量的占位符,变量名放在{}中。
def format_output_by_f_string(name: str, age: int) -> str:
"""
以特定的格式返回包含 name 和 age 的字符串
使用 f-string 进行字符串格式化。
"""
formatted_string = f"Name: {name}, Age: {age}"
return formatted_string
测试
if __name__ == '__main__':
name = "张三"
age = 22
print(format_output_by_str_concat(name, age)) # 输出: Name: 张三, Age: 22
print(format_output_by_c_style(name, age)) # 输出: Name: 张三, Age: 22
print(format_output_by_str_format(name, age)) # 输出: Name: 张三, Age: 22
print(format_output_by_f_string(name, age)) # 输出: Name: 张三, Age: 22
总结
推荐使用 f-string 或 str.format() 进行字符串的格式化,更推荐使用 f-string,因为 f-string 直接将变量嵌入到字符串中,可读性更友好一些,如果使用 str.format() 需要记住占位符和变量的对应关系。