不会字符串操作这件事, 它给人的感觉, 其实就完全等同于一个司机在开车的时候却根本不知道怎么去挂挡。字符串是在编程中使用最为频繁的数据类型之一。很多初学者仅仅掌握了利用加号进行拼接的方法, 或者是使用 print() 函数来输出内容而已, 然而字符串所具备的各种处理功能和操作方法远不止这两样那么简单, 它的功能实际上是非常丰富的。今天咱们就来一起把15个实战技巧给摸透了, 用这个方法去处理字符串的话, 能让你的工作效率直接实现翻倍的惊人效果。一、格式化字符串的3种方式1。f- 3.6, 最推荐name 小明age 18score 92.5# 基本用法print(f我是{name}今年{age}岁) # 我是小明今年18岁# 表达式print(f明年我{age 1}岁) # 明年我19岁# 控制小数位print(f分数{score:.1f}) # 分数92.5# 数字补零print(f编号{1:03d}) # 编号001# 百分比显示rate 0.856print(f完成率{rate:.1%}) # 完成率85.6%为什么要给予最高的推荐呢? 原因在于其具备优秀的可读性, 运行起来性能较高, 同时功能非常强大。2. () 方法# 按位置print({}今年{}岁.format(小明, 18))# 按索引print({1}今年{0}岁.format(18, 小明))# 按名称print({name}今年{age}岁.format(name小明, age18))3. % 格式化处理旧式风格, 具备基础知识即可print(%s今年%d岁分数%.1f % (小明, 18, 92.5))结论是, 在编写新的代码的时候, 直接使用f-字符串形式来处理相关内容就是完全正确的做法。二、在字符串查找与判断的过程当中, 我们可以来对比一下find方法还有index方法, 也就是去寻找子字符串在什么地方出现。text Hello, Python is awesome!# find找不到返回-1print(text.find(Python)) # 7print(text.find(Java)) # -1# index找不到抛异常print(text.index(Python)) # 7# print(text.index(Java)) # ValueError!# rfind从右向左找print(text.find(o)) # 4print(text.rfind(o)) # 16在积累经验的时候, 大家需要知道判断是否存在的情况, 应该去使用in或者find这两个方法, 而只有当确定某一情况一定存在的时候, 才能选择去使用index。5. 对左括号和右括号进行比对, 以此来判断文本的开头与结尾部分。url https://python.orgfile data.csvprint(url.startswith(https)) # Trueprint(url.startswith(http)) # Trueprint(file.endswith(.csv)) # True# 支持元组多个条件print(url.startswith((http, https))) # Trueprint(file.endswith((.csv, .xlsx))) # True6. in 操作符 就是那个最简单的用来判断包含关系的方法。text Python is the best languageprint(Python in text) # Trueprint(Java not in text) # Truein 是一种写法, 这种写法的可读性是非常好的。三、把原来的长句切分, 拆开之后变成逗号分隔的部分, 这个方法叫做split(), 它的主要作用就是把一段字符串给切分开。# 按空格切分words Python is great.split()print(words) # [Python, is, great]# 按指定字符切分date 2026-06-08parts date.split(-)print(parts) # [2026, 06, 08]# 限制切分次数csv_line a,b,c,dprint(csv_line.split(,, 2)) # [a, b, c,d]8. 将列表进行拼接, 也就是执行 join() 这个方法。words [Python, is, great]# 用空格拼接print( .join(words)) # Python is great# 用逗号拼接print(, .join(words)) # Python, is, great# 不加分隔符print(.join(words)) # Pythonisgreat需要注意这一点, 那就是采用join这种方式去进行操作的话, 其性能表现是远好于那种使用加号来拼接很多字符串的方法的。# 慢的方式result for i in range(1000):result str(i) # 每次创建新字符串# 快的方式result .join(str(i) for i in range(1000))9. 用斜杠加括号的形式来替代,这种排版方式叫做三分割。email usernameexample.combefore, at, after email.partition()print(before) # usernameprint(at) # print(after) ## rpartition从右查找分割path /home/user/data/file.txtprint(path.rpartition(/))# (/home/user/data, /, file.txt)四、关于字符串的清理以及进行变换操作, 这里要介绍的是第十项内容, 也就是strip家族的功能, 专门用来去除空格。dirty \n Hello, World! \t print(dirty.strip()) # Hello, World!print(dirty.lstrip()) # Hello, World!print(dirty.rstrip()) # \n Hello, World!# 去除指定字符url www.python.orgprint(url.strip(w.) # python.org注意会去掉所有w和.11. 将指定的内容替换为新的信息, 具体操作如下。text I like Python, Python is great# 基本替换print(text.replace(Python, Java))# I like Java, Java is great# 指定替换次数print(text.replace(Python, Java, 1))# I like Java, Python is great12. 这是一个关于批量进行字符替换的操作说明。# 批量替换字符比多个replace效率高table str.maketrans({a: ,e: 3,i: 1,o: 0,s: #39;})text python is awesomeprint(text.translate(table)) # pyth0n 1$ w3$0m313. 这个操作的效果是进行转小写处理, 并且其作用强度要比 lower() 这个方法更为明显一些。text Straße # 德语单词街道print(text.lower()) # straßeß没有转成ssprint(text.casefold()) # strasse正确处理了特殊字符在经验方面有一个点需要提到, 就是在执行那种不区分大小写的进行比较操作的时候, 建议大家使用括号这个符号或者相关机制来替代掉 lower() 这个函数来进行处理, 因为这样做可能会更好一些。五、进行字符串检查的第十四项内容, 也就是关于那些名称里面带有 is 这个词的一系列方法, 它们的用途是用来检查字符串里面的具体内容。# 检查字符串内容类型print(123.isdigit()) # Trueprint(abc.isalpha()) # Trueprint(abc123.isalnum()) # Trueprint( .isspace()) # Trueprint(Hello.istitle()) # True每个单词首字母大写print(PYTHON.isupper()) # Trueprint(python.islower()) # True实战验证用户输入def validate_username(username):验证用户名只包含字母数字长度3-20if not username.isalnum():return 用户名只能包含字母和数字if len(username) 3 or len(username) 20:return 用户名长度应为3-20个字符return 用户名有效print(validate_username(小明_123)) # 用户名只能包含字母和数字print(validate_username(py)) # 用户名长度应为3-20个字符print(validate_username(python_dev)) # 用户名有效六、实战文本分析工具把今天所学的, 这些技巧应用起来:def analyze_text(text):分析一段文本的各种统计信息lines text.splitlines()words text.split()print(f{*40})print(f 文本分析报告)print(f{*40})print(f总字符数 {len(text)})print(f总单词数 {len(words)})print(f总行数 {len(lines)})print(f唯一单词数 {len(set(w.lower() for w in words))})# 统计字母频率letters [c.lower() for c in text if c.isalpha()]letter_count len(letters)print(f字母占比 {letter_count / len(text) * 100:.1f}%)# 找出最长单词longest max(words, keylen)longest_len len(longest)longest_words [w for w in words if len(w) longest_len]print(f最长单词({longest_len}字){, .join(longest_words)})# 统计标点punct_count sum(1 for c in text if not c.isalnum() and not c.isspace())print(f标点符号数 {punct_count})# 句子数按.?!分割sentences [s.strip() for s in text.replace(!, .).replace(?, .).split(.) if s.strip()]print(f句子数 {len(sentences)})print(f平均句长 {len(words) / len(sentences):.1f} 词/句)# 测试sample Python is an interpreted, high-level programming language.It was created by Guido van Rossum in 1991.Python is widely used for web development, data science, and automation.Its design philosophy emphasizes code readability!analyze_text(sample)输出文本分析报告总字符数 215总单词数 30总行数 5唯一单词数 26字母占比 77.7%最长单词(12字)readability标点符号数 31句子数 4平均句长 7.5 词/句总结今天学到的15个技巧速查表技巧方法场景f-f{var:.2f}格式化输出查找find() vs index()定位子串包含判断in 操作符检查是否包含切分split()字符串→列表拼接join()列表→字符串三分割()提取分隔符两侧去空白strip()把用户提交进来的那些内容给清除掉。替换()简单替换批量替换()字符映射大小写()不进行大小写字母的区分, 直接展开比较操作。验证()/()内容类型检查开头结尾