Python 字符串高级基础:分割、替换、格式化

张开发
2026/4/14 19:37:59 15 分钟阅读

分享文章

Python 字符串高级基础:分割、替换、格式化
文章目录前言一、先搞懂Python字符串的核心前提二、字符串分割把整段文字拆成想要的片段2.1 split()最常用的正向分割2.1.1 基础用法2.1.2 新手避坑2.2 rsplit()反向分割2.3 splitlines()按换行符分割2.4 partition()精准分割成三元组三、字符串替换批量修改文本内容高效清理数据3.1 replace()最通用的替换3.1.1 基础用法3.1.2 实战场景清理无用字符3.2 strip()系列清理首尾指定字符3.3 translate()多字符批量替换3.4 替换避坑区分字符串不可变四、字符串格式化规范输出文本告别杂乱拼接4.1 三种格式化方式对比4.2 f-string格式化新手必学4.2.1 基础变量嵌入4.2.2 直接运算与调用方法4.2.3 数字格式化开发高频4.2.4 多行f-string4.3 str.format()兼容场景使用4.4 老式%格式化了解即可五、三大操作综合实战AI数据文本处理实战需求实战代码运行结果六、新手必记的字符串高频坑点结语P.S. 目前国内还是很缺AI人才的希望更多人能真正加入到AI行业共同促进行业进步增强我国的AI竞争力。想要系统学习AI知识的朋友可以看看我精心打磨的教程 http://blog.csdn.net/jiangjunshow教程通俗易懂高中生都能看懂还有各种段子风趣幽默从深度学习基础原理到各领域实战应用都有讲解我22年的AI积累全在里面了。注意教程仅限真正想入门AI的朋友否则看看零散的博文就够了。前言很多刚学Python的小伙伴总觉得字符串是Python里最“简单”的知识点背会赋值、打印、拼接就万事大吉觉得字符串无非就是文字、数字、符号堆在一起没啥可深挖的。但现实是不管是做AI数据清洗、爬虫文本解析还是日常脚本开发、后端接口数据处理80%的场景都离不开字符串操作而真正能把字符串的分割、替换、格式化这三大核心高级用法玩明白的新手少之又少。就拿日常开发来说爬取到的网页文本杂乱无章需要精准分割提取有效信息接口返回的字符串带大量无用字符得批量替换清理输出日志、生成报表、拼接SQL语句全靠格式化实现规范排版。要是只会用基础的号拼接、简单索引取值遇到稍微复杂的字符串处理需求直接就卡壳写出来的代码又臭又长还满是bug。2026年Python最新版本Python 3.13对字符串相关方法做了小幅优化新增了部分便捷参数废弃了一些过时用法今天这篇文章我就不带大家啃枯燥的官方文档用接地气的段子、生活化类比把字符串分割、替换、格式化的基础用法、高级技巧、避坑指南、实战场景一次性讲透不管是纯小白还是想查漏补缺的入门开发者都能轻松吃透看完直接就能上手写代码。一、先搞懂Python字符串的核心前提在讲三大高级操作之前先明确一个Python字符串的核心规则这是所有操作的基础很多新手踩坑都是因为没记住这个点Python字符串是不可变对象。啥叫不可变对象用大白话讲就是你创建一个字符串之后这个字符串本身的内容是没法直接修改的所有的分割、替换、格式化操作都不会改变原字符串而是会生成一个全新的字符串。举个最简单的例子str_demoPython字符串# 尝试修改原字符串的某个字符str_demo[0]p运行这段代码直接会报错TypeError: str object does not support item assignment这就是字符串不可变的直观体现。后续所有字符串操作我们都是接收方法返回的新字符串而不是修改原字符串这个点一定要刻在脑子里不然写代码必然踩坑。二、字符串分割把整段文字拆成想要的片段字符串分割就是把一整串连续的字符按照指定的分隔符拆分成一个列表方便我们提取其中的单个内容。就像把一串糖葫芦按竹签的节点拆成一颗颗山楂分割符就是那个“节点”。Python里字符串分割主要有3个方法split()、rsplit()、splitlines()还有2026年常用的高级分割partition()每个方法适用场景完全不同新手千万别混用。2.1 split()最常用的正向分割split()是日常开发中使用频率最高的分割方法默认按照任意空白字符空格、换行、制表符分割也可以指定分隔符还能控制分割次数。2.1.1 基础用法语法字符串.split(分隔符None, 最大分割次数-1)分隔符不指定默认按空白字符分割连续的空白会被当成一个分隔符最大分割次数默认-1代表分割所有指定数字则分割对应次数剩下的内容不分割实战代码示例# 1. 默认按空白分割str1Python 是 最 好用 的 编程语言res1str1.split()print(res1)# 输出[Python, 是, 最, 好用, 的, 编程语言]# 2. 指定分隔符分割str2AI,机器学习,深度学习,大模型res2str2.split(,)print(res2)# 输出[AI, 机器学习, 深度学习, 大模型]# 3. 指定分割次数分割2次str3苹果-香蕉-橘子-葡萄res3str3.split(-,2)print(res3)# 输出[苹果, 香蕉, 橘子-葡萄]2.1.2 新手避坑如果字符串开头/结尾是分隔符分割后列表会出现空字符串比如a,b,c,.split(,)结果是[a,b,c,]分隔符不能是空字符串否则会报错2.2 rsplit()反向分割rsplit()用法和split()完全一样唯一区别是从字符串末尾开始向前分割指定最大分割次数时效果和split()截然不同。实战代码示例str_demo1-2-3-4-5# 正向分割2次res1str_demo.split(-,2)print(res1)# [1, 2, 3-4-5]# 反向分割2次res2str_demo.rsplit(-,2)print(res2)# [1-2-3, 4, 5]场景总结需要从末尾提取内容时用rsplit()更方便比如提取文件后缀名、路径最后一级目录。2.3 splitlines()按换行符分割这个方法专门用来按换行符\n、\r\n、\r分割字符串适合处理多行文本比如读取文件后的文本、爬虫获取的多行网页内容。语法字符串.splitlines(keependsFalse)keependsFalse默认不保留换行符keependsTrue保留换行符实战代码示例str_multi第一行\n第二行\r第三行\r\n第四行# 不保留换行符res1str_multi.splitlines()print(res1)# [第一行, 第二行, 第三行, 第四行]# 保留换行符res2str_multi.splitlines(True)print(res2)# [第一行\n, 第二行\r, 第三行\r\n, 第四行]2.4 partition()精准分割成三元组这是很多新手不知道的高级分割方法只分割一次把字符串分成「分隔符前的内容、分隔符、分隔符后的内容」返回一个三元组不管分隔符出现多少次只处理第一个。对比split()partition()更适合只需要分割一次且要保留分隔符的场景。实战代码示例str_demo用户名:密码:token# partition()分割res1str_demo.partition(:)print(res1)# (用户名, :, 密码:token)# 对比split()res2str_demo.split(:,1)print(res2)# [用户名, 密码:token]场景处理固定格式的键值对文本比如配置文件、简单加密字符串。三、字符串替换批量修改文本内容高效清理数据字符串替换就是把字符串中的指定字符/子串替换成新的内容是数据清洗、文本处理的核心操作。Python提供了replace()、translate()、strip()系列替换/清理方法2026年开发中优先用这几个过时的替换方式直接放弃。3.1 replace()最通用的替换replace()是最基础、最常用的替换方法支持全局替换和指定次数替换简单易用小白首选。3.1.1 基础用法语法字符串.replace(旧子串, 新子串, 替换次数-1)替换次数默认-1替换所有匹配的子串指定数字只替换对应次数实战代码示例# 1. 全局替换str1我喜欢JavaJava很简单res1str1.replace(Java,Python)print(res1)# 我喜欢PythonPython很简单# 2. 指定替换次数只替换1次str2aaaabbbbccccres2str2.replace(a,x,2)print(res2)# xxaa bbbbcccc无空格3.1.2 实战场景清理无用字符比如爬取到的文本带多余的空格、换行直接用replace()批量清理# 清理换行、空格、制表符raw_str 爬取到的 文本\n内容\t很杂乱 clean_strraw_str.replace(\n,).replace(\t,).replace( ,)print(clean_str)# 爬取到的文本内容很杂乱3.2 strip()系列清理首尾指定字符很多时候我们不需要替换中间内容只需要清理字符串开头和结尾的无用字符比如空格、换行、特殊符号这时候用strip()、lstrip()、rstrip()更高效。strip()清理首尾的指定字符默认清理空白字符lstrip()只清理开头leftrstrip()只清理结尾right实战代码示例str_demo###Python学习笔记#### 清理首尾#号res1str_demo.strip(#)print(res1)# Python学习笔记# 清理开头#号res2str_demo.lstrip(#)print(res2)# Python学习笔记#### 清理结尾#号res3str_demo.rstrip(#)print(res3)# ###Python学习笔记# 默认清理空白str_space AI开发 print(str_space.strip())# AI开发3.3 translate()多字符批量替换如果需要同时替换多个不同的字符用replace()要写多次效率低这时候用translate()配合str.maketrans()更合适一步完成多字符替换。实战代码示例# 1. 创建字符映射表把a替换成xb替换成yc替换成ztrans_tablestr.maketrans(abc,xyz)# 2. 执行批量替换str_demoa1b2c3aabbccresstr_demo.translate(trans_table)print(res)# x1y2z3xxyyzz场景批量替换多个特殊字符、文本加密解密、数据脱敏。3.4 替换避坑区分字符串不可变再次强调所有替换方法都不会修改原字符串必须接收返回值才会生效新手常犯错误# 错误写法str_demohello worldstr_demo.replace(hello,hi)print(str_demo)# 还是hello world# 正确写法str_demohello worldstr_demostr_demo.replace(hello,hi)print(str_demo)# hi world四、字符串格式化规范输出文本告别杂乱拼接字符串格式化就是把变量、数据按照指定的格式嵌入到字符串中实现规范的输出、日志打印、文本生成。早期Python的%格式化、format()方法在2026年依然可用但f-string是Python 3.6之后的主流也是目前最简洁、最高效的格式化方式新手直接主攻f-string老方法了解即可。4.1 三种格式化方式对比%格式化老式写法语法繁琐不推荐仅做了解str.format()中等用法功能全面兼容性好f-stringPython 3.6专属语法简洁、执行效率高2026年首选4.2 f-string格式化新手必学f-string写法最简单直接在字符串前加f变量用{}包裹支持直接写入表达式、调用方法、格式化数字堪称字符串格式化的王者。4.2.1 基础变量嵌入# 定义变量nameAI开发者age25# f-string格式化resf我是{name}今年{age}岁print(res)# 我是AI开发者今年25岁4.2.2 直接运算与调用方法f-string支持在{}里直接做数学运算、调用字符串/数字方法不用提前处理变量# 数学运算num110num220res1f1020{num1num2}print(res1)# 102030# 调用方法str_demopythonres2f转大写{str_demo.upper()}print(res2)# 转大写PYTHON4.2.3 数字格式化开发高频在AI数据处理、报表生成中经常需要格式化数字保留小数、补零、百分比、千分位f-string一键搞定。# 1. 保留2位小数pi3.1415926print(f圆周率{pi:.2f})# 圆周率3.14# 2. 整数补零总长度5num123print(f补零{num:05d})# 补零00123# 3. 百分比格式化score0.95print(f正确率{score:.2%})# 正确率95.00%# 4. 千分位分隔money1234567print(f金额{money:,})# 金额1,234,5674.2.4 多行f-string对于长文本支持多行格式化用三引号包裹即可name小张coursePythondetailf 学员信息 姓名{name}学习课程{course}学习进度进行中 print(detail)4.3 str.format()兼容场景使用如果需要兼容Python 3.6以下的版本用format()方法支持位置参数、关键字参数功能和f-string一致# 位置参数res1我是{}学习{}.format(开发者,Python)# 关键字参数res2我是{name}学习{courses}.format(name开发者,coursesPython)print(res1)print(res2)4.4 老式%格式化了解即可不推荐新手使用语法示例res我是%s今年%d岁%(AI开发者,25)五、三大操作综合实战AI数据文本处理光说不练假把式结合2026年AI开发常见的文本数据清洗场景把分割、替换、格式化结合起来写一段完整的实战代码解决真实开发问题。实战需求有一段原始的用户数据字符串需要完成以下处理替换掉字符串中的无用符号*和空格按|分割字符串提取用户名、年龄、职业用f-string格式化输出规范的用户信息实战代码# 原始杂乱数据raw_data*user1* | 28 | AI算法工程师 # 1. 替换无用字符清理*、空格step1raw_data.replace(*,).replace( ,)# 2. 按|分割数据user_liststep1.split(|)# 提取单个数据usernameuser_list[0]user_ageuser_list[1]user_jobuser_list[2]# 3. 格式化输出resultf 处理后的用户信息 用户名{username}年龄{user_age}职业{user_job}print(result)运行结果处理后的用户信息 用户名user1 年龄28 职业AI算法工程师这个场景是爬虫数据清洗、AI数据集预处理的简化版掌握这个思路复杂的文本处理都能轻松搞定。六、新手必记的字符串高频坑点字符串不可变所有操作都要接收返回值否则白忙活分割空值split()处理首尾分隔符会产生空字符串记得用strip()提前清理替换大小写替换时区分大小写想忽略大小写要先转小写/大写再处理格式化引号冲突f-string中字符串用双引号内部变量包裹用单引号避免语法错误结语Python字符串看似基础实则藏着很多实用的高级技巧分割、替换、格式化这三大操作是Python编程的基本功更是AI开发、后端开发、爬虫开发的必备技能。新手不要觉得内容简单就忽视越是基础的知识点越要吃透用法、避开坑点才能写出简洁、高效、无bug的代码。2026年Python生态越来越完善字符串相关的方法也在持续优化大家不用盲目追求冷门技巧把本文讲的常用方法、实战场景练熟就能应对绝大多数开发需求。后续我会继续分享Python字符串的正则匹配、编码处理等更高级的内容帮助大家彻底攻克Python文本处理难关。P.S. 目前国内还是很缺AI人才的希望更多人能真正加入到AI行业共同促进行业进步增强我国的AI竞争力。想要系统学习AI知识的朋友可以看看我精心打磨的教程 http://blog.csdn.net/jiangjunshow教程通俗易懂高中生都能看懂还有各种段子风趣幽默从深度学习基础原理到各领域实战应用都有讲解我22年的AI积累全在里面了。注意教程仅限真正想入门AI的朋友否则看看零散的博文就够了。

更多文章