Python字符串处理全攻略(三):常用内置方法轻松掌握

目录

  • 引言
  • Python字符串常用内置方法
    • str.index()
      • 功能介绍
      • 语法
      • 注意事项
      • 总结
    • str.startswith()
      • 功能介绍
      • 语法
      • 示例
      • 注意事项
    • str.expandtabs()
      • 功能介绍
      • 语法
      • 示例
      • 注意事项
      • 总结
    • str.splitlines()
      • 功能介绍
      • 语法
      • 示例
      • 注意事项
      • 总结
    • str.swapcase()
      • 功能介绍
      • 语法
      • 示例
      • 注意事项
  • 结束语

引言

欢迎来到Python的世界!字符串是Python中最基本的数据类型之一,它们就像是文本的小盒子,可以帮我们存储和处理各种各样的文本数据。

Python非常贴心地为我们提供了许多内置方法来处理这些字符串。这些方法就像是魔法工具,可以帮助我们完成各种神奇的文本操作和转换。

今天,我们继续探索常用的Python字符串内置方法。我会用最简单的语言,通过具体的示例代码,详细解释每个方法的使用方法和应用场景。让我们一起开始这个有趣的Python字符串之旅吧!

Python字符串处理全攻略(一):常用内置方法轻松掌握
Python字符串处理全攻略(二):常用内置方法轻松掌握

Python字符串常用内置方法

str.index()

功能介绍

index() 可用于查找子字符串在字符串中首次出现的位置。如果找不到子字符串,则会引发一个 ValueError 异常。

语法

str.index(sub, start=0, end=len(string))
  • sub:要查找的子字符串。
  • startend:可选参数,指定查找的子字符串的起始和结束位置。

示例

  1. 使用起始和结束位置:
s = "hello world, how are you?"
print(s[6:15])  # world, ho
print(s.index("world", 6, 15))  # 输出: 6s = "hello world, how are you?"
print(s[8:15])  # rld, ho
print(s.index("world", 8, 15))  # 输出: ValueError: substring not found
  1. 查找不存在的子字符串:
s = "hello world"
try:print(s.index("python"))  # 会引发 ValueError 异常
except ValueError as e:print(e)  # 输出: 'substring not found'
  1. 使用负数索引:
s = "hello world"
print(s.index("r", -5, -2))  # 输出: 8 (从倒数第5个字符开始,到倒数第3个字符为止,找到第一个 'r')s = "hello world"
print(s.index("l", -5, -2))  # 输出: ValueError: substring not found (从倒数第5个字符开始,到倒数第3个字符为止,找到第一个 'l')

注意事项

  • 当使用 index() 方法时,应确保要查找的子字符串确实存在于原始字符串中,否则会引发异常。为了避免异常,可以使用 find() 方法代替,它在找不到子字符串时会返回 -1 而不是引发异常。
  • 使用负数索引时,注意索引的有效范围。在 Python 中,-1 表示最后一个字符,-2 表示倒数第二个字符,以此类推。
  • 当使用起始和结束位置参数时,应确保这些参数的有效性,即它们不应该超出字符串的长度或为负数。否则,ValueError 异常会被引发。
  • 如果查找的子字符串有多个相同的实例,index() 方法只会返回第一个实例的位置。如果需要找到所有实例的位置,可以考虑使用其他方法或自己编写循环来遍历并查找。
  • 注意大小写敏感性。默认情况下,index() 方法是大小写敏感的,所以 “Hello” 和 “hello” 是不同的字符串。如果要进行大小写不敏感的比较,可以先将字符串转换为全部小写或全部大写。

总结

index() 方法是一个非常实用的字符串方法,用于查找子字符串在字符串中的位置。但使用时需要注意可能引发的异常和索引的有效范围。与 find() 方法相比,index() 方法更为严格,要求子字符串必须存在。在实际应用中,可以根据需求选择使用 index()find() 方法。


str.startswith()

功能介绍

startswith() 可用于检查字符串是否以指定的前缀开始。如果字符串以给定的前缀开始,则返回 True,否则返回 False

语法

str.startswith(prefix, start=0, end=len(string))
  • prefix:要检查的前缀。
  • startend:可选参数,表示在字符串的哪个范围内进行前缀检查。

示例

  1. 常规操作
s = "hello world"
print(s.startswith("hello"))  # 输出: True
print(s.startswith("world"))  # 输出: False
  1. 使用 startend 参数:
s = "hello world"
print(s[3:])
print(s.startswith("lo", 3))  # 输出: True
print(s[2:6])
print(s.startswith("lo", 2, 6))  # 输出: False

运行结果:

在这里插入图片描述

注意事项

  • startswith() 是大小写敏感的,所以 “Hello” 和 “hello” 被视为不同的前缀。
  • 如果要忽略大小写,可以先将字符串转换为全小写或全大写,然后再使用 startswith()
  • 注意 startend 参数是可选的,默认情况下它们分别为 0 和字符串的长度。这表示整个字符串都会被检查。
  • 如果提供的 prefix 是空字符串,则任何字符串都会返回 True,因为任何非空字符串都以空字符串开始。

str.expandtabs()

功能介绍

expandtabs() 可用于将字符串中的制表符(\t)转换为一定数量的空格。该方法默认将制表符转换为 8 个空格,但也可以通过提供一个可选参数来指定不同的空格数量。

语法

str.expandtabs(tabsize=8)
  • tabsize:可选参数,指定转换后的制表符应占用的空格数量。默认值为 8。

示例

  1. 常规操作
s = "hello\tworld"
print(s.expandtabs())  # 输出: 'hello    world'(其中 \t 被替换为 8 个空格)
  1. 指定不同的 tabsize
s = "a\tb\tc\td"
print(s.expandtabs(2))  # 输出: 'a b c d'(每个 \t 被替换为 2 个空格)
  1. 在字符串中有多个制表符:
s = "a\tb\tc\td"
print(s.expandtabs(2))  # 输出: 'a       b       c       d'(每个 \t 被替换为 8 个空格)
  1. tabsize 为 0 的情况:
s = "h\te\tl\tl\to\tworld"
print(s.expandtabs(0))  # 输出: 'helloworld'(\t 被完全删除)
  1. 使用 expandtabs() 处理多行(字符串含有\n)字符串:
s = "line1\tcol2\nline2\tcol2"
print(s.expandtabs(2))  # 输出:(每一行的 \t 都被替换为 2 个空格)
# line1 col2
# line2 col2

注意事项

  • expandtabs() 方法返回一个新的字符串,原始字符串不会被修改(因为字符串在 Python 中是不可变的)。
  • 如果 tabsize 参数小于 1,该方法将制表符视为零宽度,从而删除它们。
  • 如果一个字符串中有多个制表符,它们都将被转换为相同数量的空格。
  • 该方法在处理多行文本时特别有用,因为它可以确保文本在具有固定宽度字体的编辑器或控制台中正确对齐。

总结

expandtabs() 方法提供了一种简单的方式来处理字符串中的制表符,使它们可以被转换为一定数量的空格。这对于格式化文本、确保文本对齐或在处理从其他来源获取的包含制表符的文本时非常有用。通过调整 tabsize 参数,你可以控制转换后的空格数量,以适应不同的格式需求。


str.splitlines()

功能介绍

splitlines() 可用于根据行边界符来拆分字符串。该方法返回一个列表,其中每个元素都是原始字符串的一行。默认情况下,splitlines() 会考虑所有常见的行边界符,如换行符 \n、回车符 \r 以及回车加换行 \r\n

语法

str.splitlines(keepends=False)
  • keepends:可选参数。默认为 False,意味着返回的行不包括行边界符。如果设为 True,则返回的行会保留行边界符。

示例

  1. 常规操作
text = "Hello\nWorld\n"
lines = text.splitlines()
print(lines)  # 输出: ['Hello', 'World']
  1. 使用 keepends=True
text = "Hello\nWorld\n"
lines = text.splitlines(keepends=True)
print(lines)  # 输出: ['Hello\n', 'World\n']
  1. 处理混合的行边界符:
text = "Hello\r\nWorld\nPython"
lines = text.splitlines()
print(lines)  # 输出: ['Hello', 'World', 'Python']
  1. 空字符串和只有一个行边界符的字符串:
text1 = ""
text2 = "\n"
print(text1.splitlines())  # 输出: []
print(text2.splitlines())  # 输出: [''] 或(如果 keepends=True)['\n']
  1. 使用非常见的行边界符:
text = "Hello\vWorld"  # \v 是垂直制表符,也可以作为行边界符
lines = text.splitlines()
print(lines)  # 输出: ['Hello', 'World']

注意事项

  • splitlines() 方法不会改变原始字符串。
  • 如果字符串为空或只包含行边界符,那么返回的列表可能为空或只包含空字符串。具体取决于 keepends 参数的设置。
  • 该方法对于处理文本文件或需要按行操作的文本数据非常有用。
  • 不同的操作系统可能使用不同的行边界符 ⇒ 使用 splitlines() 可以确保跨平台的兼容性。
  • splitlines() 只考虑行边界符,不会根据其他字符(如空格或制表符)来拆分字符串。

总结

splitlines() 是一个在处理文本数据时非常有用的方法,特别是当你需要按行操作或解析文本文件时。它提供了一个简单的方式来拆分字符串成行,并允许你选择是否保留行边界符。


str.swapcase()

功能介绍

swapcase() 可用于将字符串中的所有大写字母转换为小写字母,所有小写字母转换为大写字母。

语法

str.swapcase()

示例

  1. 常规操作
s = "Hello World"
print(s.swapcase())  # 输出: hELLO wORLD
  1. 处理全大写或全小写的字符串:
s1 = "HELLO"
print(s1.swapcase())  # 输出: hello
s2 = "world"
print(s2.swapcase())  # 输出: WORLD

注意事项

  • swapcase() 方法不会改变原始字符串。它会返回一个新的字符串,该字符串是原始字符串的大小写转换版本。原始字符串保持不变。
  • 该方法不会考虑非字母字符的大小写状态,只转换字母部分。非字母字符保持不变。
  • 在处理多个字符的字符串时,要确保正确处理字符串中的每个字符。大小写转换可能会影响字符串的语义和格式。
  • 在处理用户输入或来自不可靠源的字符串时,要格外小心,因为大小写转换可能会导致意外的结果或安全问题(例如,将敏感信息从大写转换为小写)。

结束语

  • 亲爱的读者,感谢您花时间阅读我们的博客。我们非常重视您的反馈和意见,因此在这里鼓励您对我们的博客进行评论。
  • 您的建议和看法对我们来说非常重要,这有助于我们更好地了解您的需求,并提供更高质量的内容和服务。
  • 无论您是喜欢我们的博客还是对其有任何疑问或建议,我们都非常期待您的留言。让我们一起互动,共同进步!谢谢您的支持和参与!
  • 我会坚持不懈地创作,并持续优化博文质量,为您提供更好的阅读体验。
  • 谢谢您的阅读!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/296619.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python数据分析 Matplotlib篇 基本方法初识 (第1讲)

Python数据分析 Matplotlib篇(第1讲)         🍹博主 侯小啾 感谢您的支持与信赖。☀️ 🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹…

《每天一分钟学习C语言·八》字符串,指针与二维数组,补码,按位取反

1、 枚举 enum WeekDay //这是一个数据类型 {//MonDay, TusDay,.... }; enum WeekDay day MonDay; printf(“%d\n”, day); //输出0,枚举里面元素都是从0开始排列2、 字符串 (1)在字符串中加双引号前面需要有反斜杠 (2&#xf…

深入探讨多模态模型和计算机视觉

近年来,机器学习领域在从图像识别到自然语言处理的不同问题类型上取得了显着进展。然而,这些模型中的大多数都对来自单一模态的数据进行操作,例如图像、文本或语音。相比之下,现实世界的数据通常来自多种模态,例如图像…

string的库函数reserve、resize

系列文章 http://t.csdnimg.cn/u80hL 目录 系列文章[TOC](目录) 一、reserve——请求容量的变化二、resize——操作对象使用的空间 一、reserve——请求容量的变化 改变对象的capacity——他会请求开辟和缩小对象所占的空间,reserve只能操作对象未使用的空间&…

vue的表单收集案例

Vue的表单收集案例 这只是最基础的表单收集&#xff0c;并未涉及到element-ui。 <!DOCTYPE html> <html><head><meta charset"UTF-8" /><title>收集表单数据</title><script type"text/javascript" src"../js…

美好的⼀天 从ActionTab开始 美观、智能、⾼效的新标签⻚ iTab 新标签页iTab新标签页Atop100工具推荐

文章目录 ActionTabiTab 新标签页iTab新标签页&#xff0c;小组件&#xff0c;起始页&#xff0c;标签页&#xff0c;日历&#xff0c;股票&#xff0c;浏览器扩展 https://www.actiontab.cn/ ActionTab 收费&#xff1f;&#xff1f;&#xff1f;&#xff1f; iTab 新标签页iT…

docker-compaose部署openldap

前段时间在本地搭建了一套gitlab geo测试环境&#xff0c;因为需要集成ldap&#xff0c;所以特意搭建下&#xff0c;特此作为笔记记录下。 文章目录 1. 前置条件2. 编写docker-openldap.yml文件3. 登录4. 使用创建组创建用户登录测试 1. 前置条件 安装docker-compose 安装docke…

嵌入式-stm32-用PWM点亮LED实现呼吸灯

一&#xff1a;知识前置 1.1、LED灯怎么才能亮&#xff1f; 答&#xff1a;LED需要低电平才能亮&#xff0c;高电平是灯灭。 1.2、LED灯为什么可以越来越亮&#xff0c;越来越暗&#xff1f; 答&#xff1a;这是用到不同占空比来实现的&#xff0c;控制LED实现呼吸灯&…

1.倒排索引 2.逻辑斯提回归算法

1.倒排索引 https://help.aliyun.com/zh/open-search/retrieval-engine-edition/introduction-to-inverted-indexes 倒排索引&#xff08;Inverted Index&#xff09;是一种数据结构&#xff0c;用于快速查找包含某个特定词或词语的文档。它主要用于全文搜索引擎等应用&#…

计算机图形学理论(3):着色器编程

本系列根据国外一个图形小哥的讲解为本&#xff0c;整合互联网的一些资料&#xff0c;结合自己的一些理解。 CPU vs GPU CPU支持&#xff1a; 快速缓存分支适应性高性能 GPU支持&#xff1a; 多个 ALU快速板载内存并行任务的高吞吐量&#xff08;在每个片段、顶点上执行着色…

反激式开关电源电路的测试记录(一)

反激式开关电源电路的测试记录&#xff08;一&#xff09; Chapter1 反激式开关电源电路的测试记录&#xff08;一&#xff09;一、测前准备二、测试总结 Chapter2 反激式开关电源电路测试记录&#xff08;二&#xff09;Chapter3 UC3842电源管理芯片详细解读一、管脚描述&…

蓝桥杯2020年5月青少组Python程序设计国赛真题

1、 上边是一个算法流程图,最后输出的b的值是() A.377 B.987 C.1597 D.2584 2、 3、如果整个整数X本身是完全平方数,同时它的每一位数字也都是完全平方数我们就称X 是完美平方数。前几个完美平方数是0、1、4、9、49、100、144......即第1个完美平方数是0,第2个是 1,第3个…