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

文章目录

  • 引言
  • Python字符串常用内置方法
    • str.capitalize()
      • 语法
      • 示例
      • 运行结果
      • 注意事项
    • str.upper()
      • 语法
      • 示例
      • 注意事项
    • str.lower()
      • 语法
      • 示例
      • 注意事项
    • str.center()
      • 语法
      • 示例
      • 注意事项
    • str.count()
      • 语法
      • 示例
      • 注意事项
    • str.endswith()
      • 语法
      • 示例
      • 注意事项
    • str.find()
      • 语法
      • 示例
      • 注意事项
  • 结束语

引言

欢迎来到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。

结束语

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

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

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

相关文章

单片机原理及应用:Keil μVision4和Proteus 8的配置介绍

笔者所在的专业最近开设了单片机课程,对笔者而言,虽然之前有一定的代码基础。但还是第一次面对既要求代码架构又要求电路仿真的领域。为了巩固知识和增强记忆,特此创建了这个专栏,谨以一名非电专业初学者的身份记录和分享知识。 …

[node]Node.js 中REPL简单介绍

[node]Node.js 中REPL简单介绍 什么是REPL为什么使用REPL如何使用REPL 命令REPL模式node的全局内容展示node全局所有模块查看全局模块具体内容其它命令 实践 什么是REPL Node.js REPL(Read Eval Print Loop:交互式解释器) 表示电脑的环境,类似 Windows 系统的终端或…

BDD - Python Behave 入门

BDD - Python Behave 入门 Behave 是什么Behave 的主要特点和组成部分Behave 实践安装 BehaveBehave 项目目录结构创建项目创建 Feature 文件创建步骤定义文件 执行用例执行全部用例执行部分用例 生成报告生成 Json report生成 HTML 报告生成 Junit report生成 Cucumber report…

大数据技术基础-读书笔记

大数据技术基础-读书笔记 一、大数据概述 大数据是指在一定时间内无法用常规软件工具对其内容进行抓取、处理、分析和管理的数据集合。 大数据一般会涉及两种以上的数据形式,数据量通常是100TB以上的高速、实时数据流,或者从每年增长速度快的小数据开…

【Docker-5】镜像编排

Dockerfile语法 制作apache镜像 httpd.service 文件路径:/lib/systemd/system/httpd.service [rootdocker-0002 ~]# mkdir apache [rootdocker-0002 ~]# cd apache拷贝动态页面到docker-0002的/root/apache/ [rootecs-proxy ~]# scp /root/5/public/info.php 192.…

js中的Array.from()和Array.of()方法的用法详情

😁 作者简介:一名大四的学生,致力学习前端开发技术 ⭐️个人主页:夜宵饽饽的主页 ❔ 系列专栏:JavaScript小贴士 👐学习格言:成功不是终点,失败也并非末日,最重要的是继续…

Spring Boot学习随笔- 拦截器实现和配置(HandlerInterceptor、addInterceptors)、jar包部署和war包部署

学习视频:【编程不良人】2021年SpringBoot最新最全教程 第十三章、拦截器 拦截器 :Interceptor 拦截 中断 类似于javaweb中的Filter,不过没有Filter那么强大 作用 Spring MVC的拦截器是一种用于在请求处理过程中进行预处理和后处理的机制。拦…

C# SQLite基础工具类

目录 1、安装System.Data.SQLite工具包 2、创建数据库 3、数据库的连接与断开 4、执行一条SQL语句 5、批量执行sql语句 6、返回首行首列值 7、执行sql语句返回datatable 1、安装System.Data.SQLite工具包 2、创建数据库 /// <summary> /// 数据库路径 …

量化交易学习笔记:XGBoost 在量化选股中的应用

一、引言 本篇文章通过借鉴传统机器学习算法——XGBoost——对相同的量价因子进行实验&#xff0c;方便与深度学习模型进行对比实践。 二、算法介绍 XGBoost 是在 Gradient Boosting&#xff08;梯度提升&#xff09;框架下实现的机器学习算法&#xff0c;全称为“极限梯度提…

文献速递:生成对抗网络医学影像中的应用—— CG-3DSRGAN:用于从低剂量PET图像恢复图像质量的分类指导的3D生成对抗网络

文献速递&#xff1a;生成对抗网络医学影像中的应用—— CG-3DSRGAN&#xff1a;用于从低剂量PET图像恢复图像质量的分类指导的3D生成对抗网络 本周给大家分享文献的主题是生成对抗网络&#xff08;Generative adversarial networks, GANs&#xff09;在医学影像中的应用。文献…

Sentinel 流量治理组件教程

前言 官网首页&#xff1a;home | Sentinel (sentinelguard.io) 随着微服务的流行&#xff0c;服务和服务之间的稳定性变得越来越重要。Sentinel 是面向分布式、多语言异构化服务架构的流量治理组件&#xff0c;主要以流量为切入点&#xff0c;从流量路由、流量控制、流量整形…

node实现简单的数据爬虫

前言 我使用的是墨迹天气的页面&#xff0c;因为这个使用的链接简单 页面结构简单并且大都是文字形式 第一步 打开墨迹天气网址 随便点开一个页面 点击F12或者鼠标右键点击检查 查看页面的信息 分析页面内容 使用文字所在的class和标签来定位 编写代码 配置express环境 …