Python字符串格式化:%和.format

Python 中字符串格式化主要有两种方式:使用 % 操作符(也称为旧式或 C 风格的字符串格式化)和使用 .format() 方法(也称为新式字符串格式化)。每种方法都有其用途和优缺点,但在现代Python代码中,推荐使用 .format() 方法或更现代的 f-strings(Python 3.6+)。不过,了解 %.format() 方法仍然很有用,尤其是在阅读旧代码或需要向后兼容时。

使用 % 操作符

% 操作符类似于 C 语言中的 sprintf 函数。你需要在字符串中指定一个或多个格式说明符(由 % 后跟一个或多个字符组成),然后提供一个元组(对于多个值)或单个值(对于单个 % 占位符),这些值将被插入到字符串中的相应位置。

name = "Alice"  
age = 30  
# 使用元组  
print("Name: %s, Age: %d" % (name, age))  
# 使用字典(Python 2.6+)  
print("Name: %(name)s, Age: %(age)d" % {'name': name, 'age': age})

使用 .format() 方法

.format() 方法提供了一种更灵活和强大的字符串格式化方式。你可以在字符串中插入大括号 {} 作为占位符,然后通过 .format() 方法传递参数。.format() 方法可以接受位置参数、关键字参数或两者的组合。

name = "Alice"  
age = 30  
# 位置参数  
print("Name: {}, Age: {}".format(name, age))  
# 关键字参数  
print("Name: {name}, Age: {age}".format(name=name, age=age))  
# 混合使用  
print("Name: {0}, Age: {age}".format(name, age=age))  
# 访问字典中的值  
person = {'name': 'Alice', 'age': 30}  
print("Name: {name}, Age: {age}".format(**person))

优点和缺点

  • % 操作符
    • 优点:简单直观,对于简单的格式化任务来说足够。
    • 缺点:不如 .format() 方法灵活,不支持嵌套字典和列表的格式化,且不易于阅读和维护大型格式化字符串。
  • .format() 方法
    • 优点:更加灵活和强大,支持嵌套字典和列表的格式化,可以轻松地重新排列格式化参数,以及使用索引和关键字参数。
    • 缺点:在非常简单的格式化任务中,可能比 % 操作符略显冗长。

现代选择:f-strings

从 Python 3.6 开始,f-strings 提供了一种更简洁和易读的方式来格式化字符串。f-strings 以字母 fF 开头,后跟字符串,字符串中的大括号 {} 可以包含表达式,这些表达式将在运行时被其值替换。

name = "Alice"  
age = 30  
print(f"Name: {name}, Age: {age}")

f-strings 是 Python 字符串格式化的推荐方式,因为它们既简洁又易于阅读,并且性能也很好。

  • 8
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ac-er8888

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值