在Python中,我们主要有三种字符串格式化方法:%s
,f-string
(或f''
),和format()
函数。
%s
:- 这是Python早期版本中使用的字符串格式化方法。
- 将提供的元组中的值将被插入到字符串中的占位符后面。
- 简单明了,易于理解,语法清晰。然而,对于更复杂的格式化需求、
- 如果遇到动态的格式字符串,或者需要格式化的值与占位符数量不匹配的情况,
%s
就可能会变得比较复杂和混乱。
f-string
(或f''
):- Python 3.6及以后版本中引入
- 字符串前加上小写的 'f' ,符串内部使用大括号
{}
来插入表达式。 - 语法简洁,直接在字符串中插入表达式,不需要函数调用。
- 复杂的格式化需求,比如需要使用格式化字符串的特定部分来作为插入值,
f-string
可能会显得力不从心。
format()
函数- 比较通用的字符串格式化方法。
- 在字符串中使用
{}
来标记需要插入值的占位符,然后在调用format()
函数时,提供一个包含需要插入值的字典或元组作为参数。 - 功能强大,可以处理各种复杂的格式化需求。
- 处理动态的格式字符串,或者需要插入多个值的字符串。然而,
- 相比于
%s
和f-string
,format()
函数的语法相对复杂一些,而且在使用时需要额外的函数调用。
values = ("Lily","Lucy","Tom","Kate")
if familyname=='White':
# Use format() function with multiple values for different conditions
name = "{0} and {1}'s name".format(*values)
elif familyname=='Green':
# Use a different format string for the other condition
name = "{3} and {2}'s name".format(*values)
print(name)