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

news2024/11/14 20:33:40

在这里插入图片描述

❤️ 博客主页:水滴技术
🌸 订阅专栏: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.coloradmin.cn/o/801472.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【深度解析】蓝牙室内定位方案优势介绍

万物互联时代,数据的价值进一步凸显,在海量数据中,位置数据成为万物互联产业中的基础坐标。室内空间结构越来越复杂,人们对位置的实时性和精确度要求不断提高,室内定位的需求也空前高涨。卫星信号对障碍物的穿透性较弱…

国内好用的企业级在线文档有哪些?

在当今数字化时代,企业级在线文档已经成为了现代办公环境中不可或缺的一部分。它不仅能够提高工作效率,还能够实现多人协同编辑,满足团队协作的需求。那么,在国内市场上,哪些企业级在线文档产品备受企业青睐呢&#xf…

【深度学习】WaveMix: A Resource-efficient Neural Network for Image Analysis 论文

论文:https://arxiv.org/abs/2205.14375 代码:https://github.com/pranavphoenix/WaveMix 文章目录 ABSTRACTIntroductionBackground and Related WorksWaveMix Architectural FrameworkOverall architectureWaveMix block Experiments and ResultsTasks…

计算机图形学十五菲涅尔方程

菲涅尔效应 菲涅尔效应在我们的日常生活中无处不在,下面来个例子三连: 我们去公园的池塘喂鲤鱼,当爆米花丢的比较近的时候,我们可以看见水底下成群的鲤鱼在抢吃的。但是当我们把爆米花丢的很远时,却看不见水底下那些如…

多线程面试题--使用场景

目录 线程池使用场景 多线程使用场景一( es数据批量导入) 多线程使用场景二(数据汇总) 多线程使用场景三(异步调用) 总结 如何控制某个方法允许并发访问线程的数量 总结​编辑 对ThreadLocal的理解 实现…

1200*A. Cheap Travel

#include<bits/stdc.h> using namespace std; typedef long long ll; int n,m,a,b,res; int main(){cin>>n>>m>>a>>b;if(a*m<b) resa*n;else{if(n%m0) resn/m*b;else{resn/m*b;resmin(n%m*a,b);}}cout<<res;return 0; }

「动态规划dp」

文章目录 0 概览1 步骤1.1 框架 2 刷题2.1 斐波那契数列2.1.1 题解2.1.2 Code2.1.3 结果 2.2 零钱兑换2.2.1 题解2.2.2 Code2.2.3 结果 0 概览 动态规划的题型&#xff0c;一定是要求解最值的&#xff0c;比如最短编辑距离&#xff0c;最长递增子序列&#xff0c;最长公共子序…

删除每行中的最大值

给你一个 m x n 大小的矩阵 grid &#xff0c;由若干正整数组成。 执行下述操作&#xff0c;直到 grid 变为空矩阵&#xff1a; 从每一行删除值最大的元素。如果存在多个这样的值&#xff0c;删除其中任何一个。 将删除元素中的最大值与答案相加。 注意 每执行一次操作&…

Python - OpenCV识别条形码、二维码(已封装,拿来即用)

此代码可识别条形码和二维码&#xff0c;已封装好&#xff0c;拿来即用&#xff1a; import cv2 import pyzbar.pyzbar as pyzbar import numpy from PIL import Image, ImageDraw, ImageFontclass CodeScan():def __init__(self):super(CodeScan, self).__init__()def decode…

uniapp checkbox radio 样式修改

文章目录 通过查看代码&#xff0c;发现 before部分是设置样式的主要属性 我们要设置的话&#xff0c;就要设置checkbox::before的属性。 其中的content表示内容&#xff0c;比如内部的对勾 那么我们设置的时候&#xff0c;比如设置disabletrue的时候或者checkedtrue的时候&…

Redis(三)—— Redis基本的事务操作、Redis实现乐观锁

一、Redis基本的事务操作 首先声明&#xff1a; redis的单条命令是保证原子性的&#xff08;回想一下setnx k1 v1 k5 v5命令如果k1已经存在&#xff0c;那么k5也会设置失败&#xff09;但是redis的事务不保证原子性&#xff01;见下面“1.2 某条命令有错怎么办&#xff1f;”…

产品经理:如何做好项目需求管理

产品经理每天都要接触各种不同的需求&#xff0c;只有对这些需求进行分析&#xff0c;才能更好地了解问题&#xff0c;从而制定相应的解决方案。那么&#xff0c;怎么做需求分析呢&#xff1f; 一、需求确定 选择需求是很重要的&#xff0c;先做出选择&#xff0c;才会有对应的…

Item2连接SSH

在MocOS系统上&#xff0c;没有xshell&#xff0c;而一些类似xshell的工具中&#xff0c;好用的要收费&#xff0c;免费的不好用&#xff0c;于是决定使用iTerm2打造一个好用的ssh神器。 一、新建一个Profile 在配置管理页面切换到Profiles管理页面&#xff1a; 二、配置ssh连接…

五、控制流(1)

本章概要 true 和 falseif-else迭代语句 whiledo-whilefor 逗号操作符 for-in 语法 程序必须在执行过程中控制它的世界并做出选择。 在 Java 中&#xff0c;你需要执行控制语句来做出选择。 Java 使用了 C 的所有执行控制语句&#xff0c;因此对于熟悉 C/C 编程的人来说&…

KNN模型进行分类和回归任务

KNN工作原理 “近朱者赤&#xff0c;近墨者黑”可以说是KNN的工作原理。整个计算过程分为三步&#xff1a;1:计算待分类物体与其他物体之间的距离&#xff1b;2:统计距离最近的K个邻居&#xff1b;3:对于K个最近的邻居&#xff0c;它们属于哪个分类最多&#xff0c;待分类物体就…

【Nginx12】Nginx学习:HTTP核心模块(九)浏览器缓存与try_files

Nginx学习&#xff1a;HTTP核心模块&#xff08;九&#xff09;浏览器缓存与try_files 浏览器缓存在 Nginx 的 HTTP 核心模块中其实只有两个简单的配置&#xff0c;这一块也是 HTTP 的基础知识。之前我们就一直在强调&#xff0c;学习 Nginx 需要的就是各种网络相关的基础知识&…

前端程序员入门:先学Vue3还是Vue2?

一、前言 对于新手来说&#xff0c;学习Vue.js框架时往往会有这样一个疑问&#xff1a;应该先学习Vue2还是直接学习Vue3&#xff1f;在回答这个问题之前&#xff0c;我们先简单介绍一下Vue.js框架。 Vue.js是一个轻量级的MVVM(Model-View-ViewModel)框架&#xff0c;它以数据驱…

数字世界未来十年面貌展望

2023年&#xff0c;数字技术已经深刻改变了我们的生活和社会&#xff0c;而未来十年数字世界的面貌将会更加令人瞩目。从人工智能到区块链&#xff0c;从虚拟现实到5G&#xff0c;各种科技将继续发展演进&#xff0c;给我们带来更多令人兴奋的可能性。以下是对数字世界未来十年…

交换机之HOL拥塞

队首阻塞(Head of Line Blocking, HOL)是一种出现在缓存式通信网络交换中的一种现象&#xff0c;其交换结构通常由缓存式FIFO输入端、交换结构(Switch Fabric)、FIFO输出端构成。 HOL阻塞用一个现实生活中的例子说明&#xff0c;就如同你在一条单车道的马路上右转&#xff0c;…

人机交互与人机混合智能的区别

人机交互和人机融合智能是两个相关但不完全相同的概念&#xff1a; 人机交互是指人与计算机之间的信息交流和互动过程。它关注的是如何设计和实现用户友好的界面&#xff0c;以便人们能够方便、高效地与计算机进行沟通和操作。人机交互通常强调用户体验和界面设计&#xff0c;旨…