Python 进阶(二):操作字符串的常用方法

news/2024/4/25 21:40:47/文章来源:https://blog.csdn.net/weixin_67276852/article/details/131972428

在这里插入图片描述

❤️ 博客主页:水滴技术
🌸 订阅专栏:Python 入门核心技术
🚀 支持水滴:点赞👍 + 收藏⭐ + 留言💬

文章目录

  • 一、索引和切片
  • 二、字符串长度
  • 三、查找和替换
  • 四、大小写转换
  • 五、分割和连接
  • 六、去除空白字符
  • 七、格式化字符串
  • 八、其他方法
  • 系列文章
  • 热门专栏


大家好,我是水滴~~

Python是一种非常流行的编程语言,它提供了许多字符串处理的方法和函数。在本文中,我们将介绍Python操作字符串的常用方法,以便您可以更好地处理和操作字符串。

一、索引和切片

可以使用索引和切片来获取字符串中的字符或子串。索引从 0 开始,负数表示从右往左数第几个字符。切片的语法为 [start:end:step],其中 start 表示起始索引(包含),end 表示结束索引(不包含),step 表示步长。例如:

s = "hello, world"
print(s[0])  # 输出 "h"
print(s[-1]) # 输出 "d"
print(s[7:12]) # 输出 "world"
print(s[::-1]) # 输出 "dlrow ,olleh"

二、字符串长度

可以使用 len() 函数来获取字符串的长度,即字符串中字符的个数。例如:

s = "hello, world"
print(len(s)) # 输出 12

三、查找和替换

  • find(sub[, start[, end]]):在字符串中查找指定子串 sub 并返回第一个匹配的位置,可指定起始和终止位置,找不到则返回 -1。

  • index(sub[, start[, end]]):在字符串中查找指定子串 sub 并返回第一个匹配的位置,可指定起始和终止位置,找不到则抛出 ValueError 异常。

  • replace(old, new[, count]):将字符串中的指定子串 old 替换为 new,可指定替换次数。

# find() 示例
s = "hello, world"
index = s.find("o")
print(index) # 输出 4# index() 示例
s = "hello, world"
index = s.index("o")
print(index) # 输出 4# replace() 示例
s = "hello, world"
new_s = s.replace("o", "0")
print(new_s) # 输出 "hell0, w0rld"

四、大小写转换

  • upper():将字符串中所有字母转换为大写。

  • lower():将字符串中所有字母转换为小写。

  • capitalize():将字符串的第一个字符转换为大写字母,其他字符转换为小写字母。

  • casefold():将字符串中所有字符转换为小写字母,包括特殊字符。

  • swapcase():将字符串中所有大写字母转换为小写字母,所有小写字母转换为大写字母。

# upper() 和 lower() 示例
s = "Hello, World"
print(s.upper()) # 输出 "HELLO, WORLD"
print(s.lower()) # 输出 "hello, world"# capitalize() 示例
s = "hello, world"
print(s.capitalize()) # 输出 "Hello, world"# casefold() 示例
s = "HELLO, WORLD!"
print(s.casefold()) # 输出 "hello, world!"# swapcase() 示例
s = "Hello, World"
print(s.swapcase()) # 输出 "hELLO, wORLD"

五、分割和连接

  • split([sep[, maxsplit]]):按照指定分隔符分割字符串,返回一个列表,可指定分割次数。

  • rsplit([sep[, maxsplit]]):从字符串右侧开始按照指定分隔符分割字符串,返回一个列表,可指定分割次数。

  • join(iterable):用指定的字符串连接可迭代对象中的字符串元素。

# split() 和 rsplit() 示例
s = "hello, world"
print(s.split()) # 输出 ['hello,', 'world']
print(s.split(",")) # 输出 ['hello', ' world']
print(s.rsplit(",", 1)) # 输出 ['hello', ' world']# join() 示例
words = ["hello", "world"]
s = "-".join(words)
print(s) # 输出 "hello-world"

六、去除空白字符

  • strip([chars]):去除字符串两侧指定字符或空白字符。

  • lstrip([chars]):去除字符串左侧指定字符或空白字符。

  • rstrip([chars]):去除字符串右侧指定字符或空白字符。

# strip()、lstrip() 和 rstrip() 示例
s = "  hello, world  "
print(s.strip()) # 输出 "hello, world"
print(s.lstrip()) # 输出 "hello, world  "
print(s.rstrip()) # 输出 "  hello, world"# strip() 指定字符示例
s = "***hello, world***"
print(s.strip("*")) # 输出 "hello, world"

七、格式化字符串

  • format(*args, **kwargs):格式化字符串,支持位置参数和关键字参数。

  • format_map(mapping):格式化字符串,使用字典中的键值对替换字符串中的占位符。

# format() 示例
name = "Alice"
age = 25
s = "My name is {} and I am {} years old.".format(name, age)
print(s) # 输出 "My name is Alice and I am 25 years old."# format_map() 示例
person = {'name': 'Bob',age': 30}
s = "My name is {name} and I am {age} years old.".format_map(person)
print(s) # 输出 "My name is Bob and I am 30 years old."

八、其他方法

  • encode(encoding=‘utf-8’, errors=‘strict’):将字符串编码为指定编码格式的 bytes 对象。

  • isdigit():判断字符串是否全部由数字组成。

  • isalpha():判断字符串是否全部由字母组成。

  • isalnum():判断字符串是否全部由字母和数字组成。

  • isspace():判断字符串是否全部由空白字符组成。

  • islower():判断字符串中所有字母是否都是小写。

  • isupper():判断字符串中所有字母是否都是大写。

  • startswith(prefix[, start[, end]]):判断字符串是否以指定的前缀开头,可指定起始和终止位置。

  • endswith(suffix[, start[, end]]):判断字符串是否以指定的后缀结尾,可指定起始和终止位置。

  • count(sub[, start[, end]]):返回字符串中指定子串 sub 出现的次数,可指定起始和终止位置。

# encode() 示例
s = "hello, world"
b = s.encode("utf-8")
print(b) # 输出 b'hello, world'# isdigit()、isalpha() 和 isalnum() 示例
s1 = "123"
s2 = "abc"
s3 = "123abc"
print(s1.isdigit()) # 输出 True
print(s2.isalpha()) # 输出 True
print(s3.isalnum()) # 输出 True# isspace() 示例
s = "   "
print(s.isspace()) # 输出 True# islower() 和 isupper() 示例
s1 = "hello, world"
s2 = "HELLO, WORLD"
print(s1.islower()) # 输出 True
print(s2.isupper()) # 输出 True# startswith() 和 endswith() 示例
s = "hello, world"
print(s.startswith("hello")) # 输出 True
print(s.endswith("world")) # 输出 True# count() 示例
s = "hello, world"
print(s.count("l")) # 输出 3

以上是 Python 字符串方法的分类介绍和示例代码,不同的方法可以根据需要进行选择和组合使用,使得字符串处理变得更加高效和方便。


系列文章

🔥 Python 进阶(一):PyCharm 下载、安装和使用

热门专栏

👍 《Python入门核心技术》
👍 《IDEA 教程:从入门到精通》
👍 《Java 教程:从入门到精通》
👍 《MySQL 教程:从入门到精通》
👍 《大数据核心技术从入门到精通》

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

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

相关文章

《JavaSE-第二十章》之线程 的创建与Thread类

文章目录 什么是进程?什么是线程?为什么需要线程? 基本的线程机制创建线程1.实现 Runnable 接口2.继承 Thread 类3.其他变形 Thread常见构造方法1. Thread()2. Thread(Runnable target)3. Thread(String name)4. Thread(Runnable target, Str…

C语言每天一练----输出水仙花数

题目&#xff1a;请输出所有的"水仙花数" 题解&#xff1a;所谓"水仙花数"是指一个3位数,其各位数字立方和等于该数本身。 例如, 153是水仙花数, 因为153 1 * 1 * 1 5 * 5 * 5 3 * 3 * 3" #define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h&g…

Segmentation fault 利用 core.xxx文件帮助你debug

在没有get到本文介绍的技能之前的时候&#xff0c;以前遇到程序发生了 Segmentation fault 时&#xff0c;也是一筹莫展&#xff0c;看到伴随程序崩溃而生成的 core.xxxx 文件时&#xff08;有时会生成&#xff0c;有时不会生成&#xff0c;留着下面介绍&#xff09;&#xff0…

windows系统之WSL 安装 Ubuntu

WSL windows10 以上才有这个wsl功能 WSL&#xff1a; windows Subsystem for Linux 是应用于Windows系统之上的Linux子系统 作用很简单&#xff0c;可以在Windows系统中获取Linux系统环境&#xff0c;并完全直连计算机硬件&#xff0c;无需要通过虚拟机虚拟硬件 Windows10的W…

TCP网络通信编程之字符流

【案例1】 【题目描述】 【 注意事项】 (3条消息) 节点流和处理流 字符处理流BufferedReader、BufferedWriter&#xff0c;字节处理流-BufferedInputStream和BufferedOutputStream (代码均正确且可运行_Studying~的博客-CSDN博客 1。这里需要使用字符处理流&#xff0c;来将…

C++代码格式化工具clang-format详细介绍

文章目录 clang-format思考代码风格指南生成您的配置运行 clang-format禁用一段代码的格式设置clang-format的设置预览 clang-format 我曾在许多编程团队工作过&#xff0c;这些团队名义上都有“编程风格指南”。该指南经常被写下来并放置在开发人员很少查看的地方。几乎在每种…

MQTT服务器详细介绍:连接物联网的通信枢纽

随着物联网技术的不断发展&#xff0c;MQTT&#xff08;Message Queuing Telemetry Transport&#xff09;协议作为一种轻量级、可靠、灵活的通信协议&#xff0c;被广泛应用于物联网领域。在MQTT系统中&#xff0c;MQTT服务器扮演着重要的角色&#xff0c;作为连接物联网设备和…

常见网关对比

常见网关对比 目前常见的开源网关大致上按照语言分类有如下几类&#xff1a; Nginxlua &#xff1a;OpenResty、Kong、Orange、Abtesting gateway 等 Java &#xff1a;Zuul/Zuul2、Spring Cloud Gateway、Kaazing KWG、gravitee、Dromara soul 等 Go &#xff1a;Janus、fa…

计算机里基本硬件的组成以及硬件协同

文章目录 冯诺依曼体系输入设备输出设备存储器运算器控制器协同工作的流程 冯诺依曼体系 世界上第一台通用计算机&#xff0c;ENIAC&#xff0c;于1946年诞生于美国一所大学。 ENIAC研发的前期&#xff0c;需要工作人员根据提前设计好的指令手动接线&#xff0c;以这种方式输入…

【HDFS】Block、BlockInfo、BlockInfoContiguous、BlockInfoStriped的分析记录

本文主要介绍如下内容: 关于几个Block类之间的继承、实现关系;针对文章标题中的每个类,细化到每个成员去注释分析列出、并详细分析BlockInfo抽象类提供的抽象方法、非抽象方法的功能针对几个跟块组织结构的方法再进行分析。moveBlockToHead、listInsert、listRemove等。一、…

spring5源码篇(13)——spring mvc无xml整合tomcat与父子容器的启动

spring-framework 版本&#xff1a;v5.3.19 文章目录 整合步骤实现原理ServletContainerInitializer与WebApplicationInitializer父容器的启动子容器的启动 相关面试题 整合步骤 试想这么一个场景。只用 spring mvc&#xff08;确切来说是spring-framework&#xff09;&#x…

MySQL 实现分库和分表的备份 2023.7.29

1、分库备份 [rootlocalhost mysql-backup]# cat db_bak.sh #!/bin/bash k_userroot bak_password123456 bak_path/root/mysql-backup/ bak_cmd"-u$bak_user -p$bak_password" exc_db"Database|information_schema|mysql|performance_schema|sys" dbname…

C#,数值计算——对数正态分布(logarithmic normal distribution)的计算方法与源程序

对数正态分布&#xff08;logarithmic normal distribution&#xff09;是指一个随机变量的对数服从正态分布&#xff0c;则该随机变量服从对数正态分布。对数正态分布从短期来看&#xff0c;与正态分布非常接近。但长期来看&#xff0c;对数正态分布向上分布的数值更多一些。 …

基于minio的dababend部署总结

Databend 是一款开源、弹性、低成本&#xff0c;基于对象存储也可以做实时分析的新式数仓。期待您的关注&#xff0c;一起探索云原生数仓解决方案&#xff0c;打造新一代开源 Data Cloud。 Minio搭建 minio 192.168.10.159 cd /data mkdir minio cd minio wget https://dl…

word2vec原理总结

参考文章&#xff1a;https://www.cnblogs.com/pinard/p/7160330.html word2vec是google在2013年推出的一个NLP工具&#xff0c;它的特点是将所有的词向量化&#xff0c;这样词与词之间就可以定量的去度量他们之间的关系&#xff0c;挖掘词之间的联系。 1 词向量编码 1.1 one…

Unity源码分享-黄金矿工游戏完整版

Unity源码分享-黄金矿工游戏完整版 项目地址&#xff1a;https://download.csdn.net/download/Highning0007/88118933

Python-Python基础综合案例--数据可视化 - 地图可视化

版本说明 当前版本号[20230729]。 版本修改说明20230729初版 目录 文章目录 版本说明目录知识总览图Python基础综合案例--数据可视化 - 地图可视化基础地图使用案例效果视觉映射器 疫情地图-国内疫情地图案例效果实操设置全局配置选项 疫情地图-省级疫情地图案例效果实操 知…

如何做好IT类的技术面试

目录 一、IT行业的招聘渠道 二、如何做好技术面试官 三、谈谈IT行业如何做好招聘工作 四、面试IT公司的小技巧 五、面试有哪些常见的问题 六、关于面试的一些建议 面试可能是我们每个人都必须会遇到的事情&#xff0c;而技术面试更具有专业性&#xff0c;以下会从几个方面…

IDEA将本地项目上传到码云

一、创建本地仓库并关联 用IDEA打开项目&#xff0c;在菜单栏点击vcs->create git repository创建本地仓库&#xff0c; 选择当前项目所在的文件夹当作仓库目录。 二、将项目提交本地仓库 项目名右键就会出现“GIT”这个选项->Add->Commit Directory, 先将项目add…

sql server表值函数

一、创建测试表 Employees 二、创建表值函数 -- DROP FUNCTION TableIntSplit;CREATE FUNCTION TableIntSplit(Text NVARCHAR(4000),Sign NVARCHAR(4000)) RETURNS tempTable TABLE(Id INT ) AS BEGIN DECLARE StartIndex INT DECLARE FindIndex INT DECLARE Content VARCHAR(…