字符串与格式化
Python 里的字符串操作很多,但真正常用、值得形成肌肉记忆的没有那么多。这篇分成两部分:
- 字符串本身怎么处理
- 字符串怎么格式化输出
基础操作
text = "hello"
print(len(text))
print(text[0])
print(text[1:4])
print(text.upper())
print(text.replace("ll", "LL"))
字符串是不可变对象,所以这些方法返回的是新字符串,不会原地改原对象。
常见拼接方式
first = "hello"
second = "world"
print(first + " " + second)
print(" ".join([first, second]))
如果是多个片段反复拼接,通常优先 join()。
f-string
这是我默认最推荐的格式化方式:
name = "alice"
score = 95.1234
print(f"{name}: {score:.2f}")
优点:
- 可读性高
- 可以直接写表达式
- 和变量关系很清楚
str.format()
name = "alice"
score = 95.1234
print("{}: {:.2f}".format(name, score))
现在它仍然常见,但如果没有兼容旧代码的压力,我更倾向直接用 f-string。
% 旧式格式化
name = "alice"
age = 20
print("%s is %d years old." % (name, age))
老项目里还会见到,但新代码一般不再优先写它。
常见格式控制
value = 3.14159
print(f"{value:.2f}") # 3.14
print(f"{value:8.2f}") # 宽度 8,保留 2 位小数
print(f"{42:04d}") # 0042
一个高频细节:round() 和格式化不是一回事
round(x, 2):改的是数值f"{x:.2f}":强调输出格式
如果你需要“严格显示两位小数”,优先格式化字符串。
我更推荐的实践
- 默认优先 f-string
- 多段字符串拼接优先
join() - 需要查方法时直接看 字符串常用方法速查