page contents

Python 字符串秘籍:写代码的人都该背的小抄

很多人学 Python,一上来先接触的就是“字符串”。 为什么?因为你每天都要跟文本打交道:处理日志、分析数据、爬网页、甚至写个简单的打印语句,背后都离不开字符串。

attachments-2025-09-KbhHYWC468ba3c7844c18.png很多人学 Python,一上来先接触的就是“字符串”。 为什么?因为你每天都要跟文本打交道:处理日志、分析数据、爬网页、甚至写个简单的打印语句,背后都离不开字符串。

但是,很多初学者用字符串就停留在最基本的拼接、打印、切片。真正能把字符串用到“飞起”的人,其实不多。 而 Python 贴心地给我们准备了一整套字符串方法,用好了,它们就是写代码时的一把“瑞士军刀”。

今天这篇文章,我想带你系统地走一遍 Python 字符串的常用方法。别担心,我不会把它写成枯燥的官方文档,而是带你像看“秘籍”一样,边看边会心一笑。看完,你会发现 处理字符串,其实比泡茶还顺手。

一、大小写:文字里的“声调”

我们先从最直观的大小写说起。 人类说话有声调,Python 的字符串也有“声调”。想把文字变大声、变小声、翻转风格,几行代码就搞定。

print("mediaTEA".lower())   # mediatea

print("mediaTEA".upper())   # MEDIATEA

lower():全变小写,就像你在微信里说“别吵,我小声说”。

upper():全变大写,瞬间变成“狮吼功”。

那如果你只想让开头有点仪式感呢?

print("hello world".capitalize())  # Hello world

print("hello world".title())  # Hello World

capitalize():第一个字母大写,其他小写,像正式开会时的开场白。

title():每个单词首字母都大写,特别像英文书名。

还有两个更有趣的:

print("mediaTEA".swapcase())  # MEDIAtea

print("Straße".casefold())  # strasse

swapcase():反转大小写,瞬间给人“另一种性格”的感觉。

casefold():这是“国际友好版”的小写转换,连德语里的 ß 都能搞定。对比大小写时特别好用。

小提示:写爬虫或者做数据清洗时,最常见的操作就是“忽略大小写”。这时候 casefold() 往往比 lower() 更靠谱。


二、查找与统计:在大海里找贝壳

想象你在沙滩上捡贝壳,有时候你要找第一个闪亮的,有时候要找最后一个。Python 给你准备了不同的“放大镜”。

s = "banana"

print(s.find("na"))     # 2

print(s.find("na", 3))  # 4

print(s.find("xy"))     # -1

find():找到子串出现的位置,找不到就老实告诉你 -1。

rfind():从右边开始找,像倒着看沙滩。

index() / rindex():跟上面类似,但更“暴躁”——没找到就直接报错。

再比如,你想知道沙滩上到底有几个贝壳:

print("banana".count("na"))  # 2

count() 就是专门干统计的。

这些方法特别适合日志分析,比如查某个关键字出现了多少次,或者定位它的具体位置。


三、拆分与连接:切菜和拌菜

字符串的“拆和合”,就像厨房里的切菜和拌菜。 你可以把它劈开一份份,也可以拌在一起端上桌。

s = "a b c"

print(s.split())        # ['a', 'b', 'c']

print(s.split(" ", 1))  # ['a', 'b c']

print("a b c".rsplit(" ", 1))  # ['a b', 'c']

split():从左边切。

rsplit():从右边切。

splitlines():专门切“换行”的。

再比如:

print("hello mediaTEA world".partition(" "))  

# ('hello', ' ', 'mediaTEA world')


print("hello mediaTEA world".rpartition(" ")) 

# ('hello mediaTEA', ' ', 'world')

partition() 和 rpartition() 就像夹心饼干,把分隔符和两边的部分都保留下来。

那如果你想把一盘菜重新拼在一起?

words = ["a", "b", "c"]

print("-".join(words))   # a-b-c

join() 就是搅拌器,把食材合成新的一道菜。 写 CSV、生成路径、拼接 SQL 时,它超级常见。


四、判断:做“体检”

有时候你得问问字符串自己:“你身体合格吗?” Python 给它准备了一套“体检表”。

print("abc".isalpha())   # True

print("abc123".isalnum())   # True

print("123".isdigit())      # True

print("123".isdecimal())  # True

print("一二三".isnumeric())  # True

print("   ".isspace())      # True

isalpha():是不是全字母?

isdigit() / isdecimal() / isnumeric():是不是数字?区别在于:

isdigit():数字字符。

isdecimal():严格的十进制。

isnumeric():还包括中文“一二三”。

这套检查不止这些,还有:

print("hello".islower())       # True

print("HELLO".isupper())       # True

print("Hello World".istitle()) # True

print("abc".isascii())         # True

print("user_name".isidentifier()) # True

print("Hello\nWorld".isprintable())  # False

这些方法在做输入校验时特别好用,比如:

注册用户名只能用字母数字下划线,就要用 isidentifier()。

判断文本是不是全英文,用 isascii()。

检查是不是全空格,用 isspace()。

五、对齐与填充:排队站好

生活里有个场景:学生合影时,老师总喊“左边一点,右边一点”。 Python 也能帮字符串“排整齐”。

print("hi".ljust(5, "-"))  # hi---

print("hi".rjust(5, "-"))  # ---hi

print("hi".center(5, "-"))  # --hi-

print("42".zfill(5))  # 00042

ljust():左对齐,右边补。

rjust():右对齐,左边补。

center():居中,两边补。

zfill():专门在前面补 0,常见于编号、日期。

这类方法在输出表格、打印报表、格式化数据时超有用。

六、替换与删除:换装与减肥

字符串也会“换衣服”或者“减肥瘦身”。

s = "apple apple"

print(s.replace("apple", "orange"))      # orange orange

print(s.replace("apple", "orange", 1))   # orange apple

replace():直接替换,可以控制次数。

print("abc\tdef".expandtabs())       # 'abc     def'

print("abc\tdef".expandtabs(4))     # 'abc def'

expandtabs():把 \t 换成空格,适合处理日志。

更灵活的是格式化:

print("Hello, {}!".format("world"))              

print("{0} + {0} = {1}".format("a", "2a"))       

print("{name} is {age} years old".format(name="mediaTEA", age=7))

format() 和 format_map() 就像是给字符串穿“定制西装”,随你填参数。

再比如清理:

print(" hello ".strip())      # "hello"

print("..hi..".strip("."))    # "hi"

print("xxhelloxx".lstrip("x"))  # "helloxx"

print("xxhelloxx".rstrip("x"))  # "xxhello"

print("unhappy".removeprefix("un"))     # happy

print("data.csv".removesuffix(".csv"))  # data

strip() / lstrip() / rstrip():去掉头尾的空白或指定字符。

removeprefix() / removesuffix():精准去前缀或后缀,不改中间内容。

这在处理文件名、清洗 URL 时特别实用。

七、编码与解码:不同语言的翻译官

当你跟不同国家的人交流时,需要翻译官。 字符串在 Python 世界里就是 Unicode,而存储或传输时,必须转成 bytes。

print("你好".encode())              # b'\xe4\xbd\xa0\xe5\xa5\xbd'

print("abc".encode('ascii'))        # b'abc'

print("你好".encode('ascii', errors='ignore'))  # b''

encode():把字符串翻译成字节串。

参数 errors:可以忽略、替换或报错。

解码的时候,用 decode():

b = b'\xe4\xbd\xa0\xe5\xa5\xbd'

print(b.decode("utf-8"))  # 你好

这一块在网络传输、文件保存时必不可少。

八、批量替换:大规模换血

如果你要一次性改掉一堆字符,用 replace() 就显得笨。 这时候 maketrans() + translate() 就像批量操作。

table = str.maketrans("abc", "123")

print("abc cab".translate(table))  # 123 321

table = str.maketrans({"-": "", "_": " "})

print("data-set_v1".translate(table))  # dataset v1

table = str.maketrans({"a": None})

print("banana".translate(table))  # bnn

这招效率高,还能直接删除指定字符。 比如清洗数据、重命名变量时,特别有感觉。

小结:学会“十八般武艺”

到这里,我们几乎走了一遍 Python 字符串的“江湖招式”。 从大小写转换、查找统计,到拆分拼接、替换清理,再到对齐格式化、编码解码,最后是批量替换。

可以说,字符串的方法就是你写 Python 时的“基本功”。 写得多了,你会发现:

它们能帮你把很多原本 10 行的代码压缩成 1 行;

能让你处理文本的效率翻倍;

更重要的是,写出来的代码又简洁又优雅。

就像练武功,剑法刀法枪法都懂一些,你走江湖时才更稳。

更多相关技术内容咨询欢迎前往并持续关注好学星城论坛了解详情。

想高效系统的学习Python编程语言,推荐大家关注一个微信公众号:Python编程学习圈。每天分享行业资讯、技术干货供大家阅读,关注即可免费领取整套Python入门到进阶的学习资料以及教程,感兴趣的小伙伴赶紧行动起来吧。

attachments-2022-05-rLS4AIF8628ee5f3b7e12.jpg

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
小柒
小柒

2180 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 2180 文章
  3. Pack 1343 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章