大家好呀~我是一个python爱好者👋。
前几天 Code Review的时候,我发现我早期写了这样一段代码:

这段代码,用 + 号拼接字符串。这是新手最容易犯的错误,也是性能杀手!
很多人觉得字符串就是一串文字,会用 split 和 replace 就可以了。其实,字符串(String)是 Python 里最“精分”的数据类型。
今天,我就把这几年总结的 字符串高阶玩法 分享给大家,学完这篇,你的代码不仅跑得更快,还会显得非常👍!

为什么不能用 + ?
因为 字符串是不可变对象。每用 + 拼接一次,Python 就会在内存里创建一个新的对象。拼接 1000 次,就创建 1000 次,慢到怀疑人生。
✅ 正确姿势:
words = ["Python", "Java", "Go"]
# 用逗号连接
result = ",".join(words)
print(result)
join() 会一次性计算所有内存空间,然后写入,效率极高!
面试高频题:请反转字符串 "Hello World"。
90% 的人会写循环。高手只需要一行。
text = "Hello World"
reversed_text = text[::-1]
print(reversed_text) # dlroW olleH
原理: [起始:结束:步长] 。步长为 -1 ,就是从后往前读。
以前我们用 %s ,后来用 format() ,现在请直接用 f-string(Python 3.6+)。
❌ 旧写法:
name = "张三"
print("我叫 %s,今年 %d 岁" % (name, 18))
✅ 新写法(推荐):
name = "张三"
age = 18
print(f"我叫 {name},明年 {age+1} 岁 🎂")
甚至可以直接在 {} 里写表达式,还能调用函数!
判断一个字符串是否为空,新手常写 len(s) == 0 。
但有一种情况很容易漏:全是空格的字符串。
✅ 终极判断法:
s = " "
# 判断是否为 None 或 空字符串
if not s:
print("空")
# 判断是否全是空白字符(空格、Tab、换行)
if s.isspace():
print("全是空白符")
清理用户输入时,一定要先用 strip() 去掉首尾空格!
想把一串字符串里的数字提取出来?
比如: "abc123def456" -> [123, 456]
✅ 优雅写法:
import re
s = "abc123def456"
numbers = [int(num) for num in re.findall(r'\d+', s)]
print(numbers) # [123, 456]
总结一下:
拼接用 join() ,别用 + 。
反转用 [::-1] 。
格式化用 f-string 。
判断空串小心空格。
编程不仅仅是实现功能,更是艺术。 写出简洁、高效、易读的代码,才是一个合格程序员的修养。