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

发布时间:2023年12月22日

引言

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

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

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

Python字符串常用内置方法

str.capitalize()

str.capitalize() 方法是一个非常实用的字符串方法,可以帮助你将字符串的首字母转换为大写字母,同时保持其他字母的小写形式。这在很多文本处理任务中都非常有用,例如在处理用户输入或格式化文本时。

语法

str.capitalize()

示例

s1 = "hello world"
print(s1.capitalize())  # 输出 "Hello world" (将字符串的首字母转换为大写字母)

s2 = "HELLO WORLD"
print(s2.capitalize())  # 输出 "HELLO WORLD"(除首字母外,其他字母转换为小写字母)

s3 = "12345"
print(s3.capitalize())  # 输出 "12345"(数字和标点符号不转换)  

s4 = " hello!"
print(s4.capitalize())  # 输出 " hello!"(如果字符串的第一个字符是数字/标点符号/空格字符,则该方法不会做任何转换)

运行结果

在这里插入图片描述

注意事项

  1. 如果字符串的第一个字符是数字或标点符号或空格字符,则该方法不会做任何转换。
  2. 如果字符串只包含非字母字符,则该方法返回原始字符串。
  3. 如果字符串全是大写,则该方法除首字母外,其他字母转换为小写字母。
  4. 该方法返回一个新的字符串,原始字符串不会被修改

str.upper()

str.upper()方法可以帮助你将字符串中的所有小写字母转换为大写字母

语法

str.upper()

示例

  1. 基本使用
s = "Hello, World!"
print(s.upper())  # 输出: HELLO, WORLD!
  1. 非字符串类型的情况
s = 42
print(s.upper())  # 输出: AttributeError: 'int' object has no attribute 'upper'
  1. 空字符串的情况
s = ""
print(s.upper())  # 输出: ''

注意事项

  1. upper()方法返回字符串的全体大写形式。对于英文字符,这通常是将所有小写字母转换为大写字母。对于非英文字符,情况就比较复杂,因为这些字符可能没有对应的大写形式。例如,一些语言中的特殊字符在转换为大写后可能会失去一些语义信息。
  2. upper()方法只能用于字符串类型的变量。如果尝试在非字符串类型的变量(如整数或浮点数)上使用upper()方法,将会引发TypeError。
  3. 对于空字符串,upper()方法返回的仍然是空字符串。这是因为空字符串没有大写形式。
  4. 在某些情况下,可能需要使用其他字符串方法(如capitalize())来获得期望的文本转换效果。这些方法可以更精细地控制文本的转换方式。

str.lower()

str.lower()方法可以帮助你将字符串中的所有大写字母转换为小写字母。这在很多文本处理任务中都非常有用,例如在比较两个字符串是否相等、将用户输入统一格式化等场景中。由于它不会删除大小写差异,因此在需要保留原始大小写格式的场景中,应使用str.lower()方法。

语法

str.lower()

示例

s = "Hello World"
print(s.lower())  # 输出 "hello world"

注意事项

  1. str.lower()方法只将大写字母转换为小写字母,不会删除任何字符或空格。
  2. str.casefold()方法相比,str.lower()方法更简单、更快速,因为它不删除大小写差异。
  3. str.lower()方法返回一个新的字符串,原始字符串不会被修改。

str.center()

str.center() 方法用于将字符串居中,并使用空格或其他字符进行填充。它常用于格式化输出,使字符串在指定的宽度内居中对齐。在使用该方法时,需要注意 widthfillchar 参数的使用,以确保得到正确的结果。

语法

str.center(width, fillchar=None)

语法说明:

  • str.center(width):将字符串居中,使用空格填充到指定的宽度。如果字符串的长度已经超过了指定的宽度,则返回原始字符串。
  • str.center(width, fillchar):将字符串居中,使用指定的字符填充到指定的宽度。如果字符串的长度已经超过了指定的宽度,则返回原始字符串。

示例

s = "Hello, World!"
print(s.center(20))       
print(s.center(20, '-'))
print(s.center(20, '0'))

运行结果:
在这里插入图片描述

注意事项

  1. width 参数必须是一个非负整数,表示要填充的宽度。
  2. fillchar 参数是可选的,默认为 None。如果提供了该参数,则使用指定的字符进行填充。如果未提供该参数,则使用空格进行填充。
  3. 如果字符串的长度已经超过了指定的宽度,则返回原始字符串。
  4. 该方法返回一个新的字符串,原始字符串不会被修改。

str.count()

str.count()方法可以用于计算字符串中某个子字符串的出现次数,也可以用于计算字符串中某个子字符串在指定范围内的出现次数。

语法

str.count(sub[, start[, end]])

示例

  1. 计算字符串中某个子字符串的出现次数:
s = "Hello, world! This is a test string."
count = s.count("world")
print(count)  # 输出 1
  1. 计算字符串中某个子字符串在指定范围内的出现次数:
s = "Hello, world! This is a test string."
count = s.count("world", 10, 20)
print(s[10:20])
print(count)  # 输出 0,因为"world"在[10, 20)范围内没有出现
count = s.count("world", 0, 15)
print(s[:15])
print(count)  # 输出 1,因为"world"在[0,15)范围内出现过

运行结果:

在这里插入图片描述

  1. 计算字符串中所有字符的出现次数:
s = "Hello, world!"
count = s.count(s)
print(count)  # 输出 1,因为s中只有一个"s"字符出现一次
  1. 计算字符串中多个子字符串的出现次数:
s = "Hello, world! This is a test string."
count1 = s.count("Hello")
count2 = s.count("world")
count3 = s.count("test")
print(count1, count2, count3)  # 输出 1 1 1,因为"Hello"、"world"和"test"各出现一次

注意事项

  1. 如果子字符串不存在于字符串中,则返回0。
  2. 如果start或end参数超出字符串范围或未指定,则默认为0和字符串的长度。
  3. 如果start或end参数为负数,则将其视为从字符串末尾开始的偏移量。
  4. str.count()方法不会修改原始字符串。
  5. 在使用str.count()方法时,应注意与其他方法结合使用以获得更好的效果。例如,可以使用str.find()方法查找子字符串的位置,然后使用str.count()方法计算子字符串的出现次数。

str.endswith()

str.endswith()方法检查字符串是否以指定的后缀结尾,如果是则返回True,否则返回False。

语法

str.endswith(suffix[, start[, end]])

示例

  1. 不指定起始和结束索引
s = "Hello, World!"
print(s.endswith("World!"))  # 输出: True
  1. 指定起始和结束索引
s = "Hello, World!"
print(s.endswith("World!", 7, 13))  # 输出: True
  1. 不匹配的情况
s = "Hello, World!"
print(s.endswith("Python"))  # 输出: False
  1. 空字符串的情况
s = "Hello, World!"
print(s.endswith(""))  # 输出: True,因为任何字符串都以空字符串结尾
  1. 非字符串类型的情况
s = "Hello, World!"
print(s.endswith(42))  # 报错,因为endswith只接受字符串类型的参数

报错如下
在这里插入图片描述

注意事项

  1. endswith()方法只检查字符串的结尾,所以它从字符串的末尾开始比较。
  2. 如果要检查的子串不在字符串的末尾,该方法返回False
  3. endswith()方法对大小写敏感,所以"Hello"和"hello"是不同的。
  4. 如果提供了startend参数,那么比较将在指定的范围内进行。这意味着,例如,对于字符串"Hello, World!",s.endswith("World!", 7, 13)将返回True,而s.endswith("World!", 0, 5)将返回False
  5. endswith()方法不能接受非字符串类型的参数。尝试这样做将引发TypeError。
  6. 空字符串""是任何字符串的结尾,所以s.endswith("")将返回True。

str.find()

str.find()方法返回子字符串在字符串中第一次出现的索引位置,如果没有找到则返回-1。

语法

str.find(sub[, start[, end]])

示例

  1. 查找子串的位置
s = "Hello, World!"
print(s.find("World"))  # 输出: 7
  1. 子串不存在的情况
s = "Hello, World!"
print(s.find("Python"))  # 输出: -1
  1. 使用起始和结束索引
s = "Hello, World!"
print(s.find("World", 7, 13))  # 输出: 7
  1. 查找子串并获取子串
s = "Hello, World!"
result = s.find("World")
print(result, s[result:result+5])  # 输出: 7 World
  1. 子串为空字符串的情况
s = "Hello, World!"
print(s.find(""))  # 输出: 0,因为空字符串是任何字符串的子串,并且其位置为0

注意事项

  1. find()方法返回子串在字符串中第一次出现的位置。如果没有找到子串,则返回-1。
  2. startend参数是可选的,用于指定搜索的子串范围。如果不指定这些参数,则默认在整个字符串中进行搜索。
  3. 如果子串为空字符串,则它在任何字符串中都存在,并且其位置为0。
  4. find()方法对大小写敏感,所以"Hello"和"hello"是不同的。但是,可以使用lower()casefold()方法进行大小写不敏感的搜索。
  5. find()方法不支持正则表达式。如果需要使用正则表达式进行搜索,可以使用re模块中的search()findall()方法。
  6. 在使用startend参数时,请确保指定的范围是有效的,否则可能会引发ValueError。

结束语

  • 亲爱的读者,感谢您花时间阅读我们的博客。我们非常重视您的反馈和意见,因此在这里鼓励您对我们的博客进行评论。
  • 您的建议和看法对我们来说非常重要,这有助于我们更好地了解您的需求,并提供更高质量的内容和服务。
  • 无论您是喜欢我们的博客还是对其有任何疑问或建议,我们都非常期待您的留言。让我们一起互动,共同进步!谢谢您的支持和参与!
  • 我会坚持不懈地创作,并持续优化博文质量,为您提供更好的阅读体验。
  • 谢谢您的阅读!
文章来源:https://blog.csdn.net/qq_41813454/article/details/135143646
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。