Python学习------起步7(字符串的连接、删除、修改、查询与统计、类型判断及字符串字母大小写转换)
目录
前言:
1.字符串的连接
join() 函数
2.字符串的删除&取代
replace()函数
3.字符串的修改&切割
(1)strip() 函数
(2)lstrip()函数 和 rstrip()函数
(3)split()函数-->切割字符串
4.字符串的查询与统计
(1)find() 函数
(2)index() 函数
find()函数与index()函数的区别
(3)endswith() 函数
5.字符串的统计
count()函数
6.字符串的类型判断
(1)isdigit() 函数
(2)isalpha()函数
(3)大小写判断
7.字符大小写转换
(1)upper()函数,小写转大写
(2)lower()函数,大写转小写
(3)title()函数,标题化字符串
前言:
前面讲了有序序列,字符串也是有序序列的一种,但是跟列表不同,字符串是不可以修改的,也就是说,已经定义了一个字符串,但是不可以修改或者删除其中的一个字符,否则会报错。但是这一期,我却讲字符串的连接,删除,修改,实际上并不是在原来的基础上修改,而是创建了一个新的修改了以后的字符串。
序列的可变性与不可变性:
可变:该类型的值进行修改的话 该类型的内存地址不会发生改变
不可变:该类型的值进行修改的话 该类型的内存地址也会跟着修
Python对比C语言:
//在c语言中,我们可以去直接去修改字符串里面的单个字符,是不会报错的
#include<stdio.h>
int main()
{char a[20] = { "hello word" };a[0] = 'q';a[1] = 'o';puts(a);
}
#但是如果在Python中这样子去修改的话,是会报错的,
#因为字符串里面的字符地址都跟着一起修改了,所以修改过后已经不是一个连续内存的字符串了
st='hello word'
st[0]='p'
st[1]='z'
print(st)
对此,在Python中,如果想要修改一个字符串的话,那就得创建一个新的字符串变量或者把原来的字符串内容覆盖掉来储存修改好了的字符串,从而实现内存的连续性,才能满足字符串的形式
1.字符串的连接
前面我们学了Python相关知识都知道,Python字符串是可以通过+号和*号进行修改的
a='123'
b='(๑′ᴗ‵๑)I Lᵒᵛᵉᵧₒᵤ❤'
print(a+b)
#输出结果:123(๑′ᴗ‵๑)I Lᵒᵛᵉᵧₒᵤ❤
这里也仅仅只是实现了字符串一个拼接而已,但是没有去修改到字符串里面的元素。如果要修改元素就必须用到函数。
join() 函数
格式:
'sep'.join(seq)
sep:表示分隔符,可以是但个字符,也可以是字符串
seq:是表示要被处理的字符串
详细内容可看下文
Python中的join函数 - 腾讯云开发者社区-腾讯云
示例:
st='hello word'
s='-'.join(st)
print(s)

这个函数的用法是非常广泛的,不单单可以用于字符串,基本上可以用于Python中的所有序列。
2.字符串的删除&取代
上面我提出了在Python中字符串修改的问题,这里我会通过一个函数可以直接对字符串里面的单个字符进行操作
replace()函数
格式:
字符串名.replace('要修改的值','替换值',替换的次数)
备注:如果想要删除就设替换值为空就可以了,例如:
st='123hao'
s=st.replace('h','')
注意事项:如果没有去设置替换的次数的话,这个函数会默认把所以这个要修改的值全部替换!!
示例1:
str1 = '大家好我是地表最强强强强强的国服韩信'
re=str1.replace('强','吊')
print(re)
print(str1)

这里可以看出,如果我没有去备注替换的次数,那么会把全部的 强 替换为 吊 ,而且是吧替换后的字符串放到re中,而原来的str1是没有变化的。
示例2:
str1 = '大家好我是地表最强强强强强的国服韩信'
str1=str1.replace('强','吊',2)
print(str1)
#输出结果:大家好我是地表最吊吊强强强的国服韩信
这里我是用覆盖的方法,把原来的str1进行覆盖,而且也备注了替换次数为2,所以会把最前面的两个 强 字给替换掉,应该很好理解了。
3.字符串的修改&切割
(1)strip() 函数
格式:
字符串名.strip()
作用:删除掉字符串左右全部空格,但是中间的不会被删除
a=' wad asd '
b=a.strip()
print(b)
#输出结果:wad asd
(2)lstrip()函数 和 rstrip()函数
lstrip()函数
格式:
字符串名.lstrip()
作用:删除掉字符串左边的全部空格
rstrip()函数
格式:
字符串名.rstrip()
作用:删除掉字符串右边全部空格
示例:
a=' 无论在哪里 我都会想你 '
b=a.lstrip()
c=a.rstrip()
print(b)
print(c)

(3)split()函数-->切割字符串
格式:
字符串名.split('切割字符','分割次数')
作用:一个字符串可以按照指定的分割符切成多个子串,以列表形式返回
注意事项:切割之后的数据类型是列表类型,如果没有任何参数的话,那么分割字符是默认为空格,tab制表符,换行符等符号作为条件;如果没有设置分割次数的话,那么就会把全部满足条件的分割符全部进行分割
示例1:
#没有任何参数
str1='再看一眼 多看一眼 就会爆炸'
str2='再看一眼\n多看一眼\n就会爆炸'
str3='再看一眼\t多看一眼\t就会爆炸'
a=str1.split()
b=str2.split()
c=str3.split()
print(a)
print(b)
print(c)

结果自然也是一样的了
示例2:
#split('-') 有自定义的分割符
str1='再看一眼-多看一眼-就会爆炸'
str2='再看一眼\n多看一眼\n就会爆炸'
str3='再看一眼*多看一眼*就会爆炸'
a=str1.split('-')
b=str2.split('-')
c=str3.split('-')
print(a)
print(b)
print(c)

示例3:
#有自定义的分割符,还有分割次数
str1='再看一眼-多看一眼-就会爆炸'
str2='再看一眼\n多看一眼\n就会爆炸'
str3='再看一眼*多看一眼*就会爆炸'
a=str1.split('*',1)
b=str2.split('*',1)
c=str3.split('*',1)
print(a)
print(b)
print(c)

4.字符串的查询与统计
(1)find() 函数
格式:
字符串名.find('要查询的字符', 起始值 , 终点值)
作用:该方法得到的结果尾查询字符对应的下标,可以检查是否包含子串
注意:如果没有去标注起始值跟终点值,那么系统就会默认查询范围为整个字符串,如果要查询的范围内没有这个字符那么结果不会报错,而是返回-1,如果找到了就会返回查询字符第一个字符所在的下标位置
st='要去学校了,QAQ'
s=st.find('学校了')
print(s)
#输出结果:2
st='要去学校了,QAQ'
s=st.find('去',2,5)
print(s)
#输出结果:-1
这个函数的终点值是可以超过这个字符串的最大下标的,不会报错,系统会把超过的部分忽略掉,默认终点为这个字符串最后一个字符
(2)index() 函数
格式:
列表名.index(数据,起始值,终点值)
返回:如果找到这个字符串的子串就会返回子串第一个字符在这个字符串所在的下标,如果找不到就报错,这个函数跟find()函数一样也是有范围查询的功能
st='要去学校了,QAQ'
s=st.index('学校w')
print(s)

因为这个子串在原字符串st中是没有的,所以会报错同样终点值也是可以大于字符串的长度的,不会报错,系统默终点为最后一个字符
find()函数与index()函数的区别
1.这两个函数的用法可以说是几乎一模一样,但是区别也是有的:index()函数如果没有找到这个字符就会报错,而find()函数如果没有找到就会返回-1,不会报错
2.还有就是index()函数的使用范围更加光,基本上是可以用于全部序列的,而find()函数一般只能在字符串(str)类型中使用,而列表是不可以用find()函数的
(3)endswith() 函数
格式:
字符串名.endswith('指定字符')
作用:该方法是判断字符串末尾的字符是否与我们指定的字符相同
返回:如果找到就返回布尔变量True,反正返回False(没找到不会报错)
st='国服韩信在此,谁敢放肆'
print(st.endswith('肆'))
print(st.endswith('敢放肆'))
print(st.endswith('国服韩信在此,谁敢放肆'))
print(st.endswith('国服韩信'))

这个函数是从字符串末尾开始找的,实际上就是倒着找
5.字符串的统计
count()函数
格式:
字符串名.count(要统计的字符)
返回值:统计这个字符在字符串出现的次数,如果不存在这个字符就返回0
这个函数不仅仅是可以作用于字符串,也可以作用于列表等序列
st='你爱玩,我爱你,你是秉冰城甜蜜蜜'
print(st.count('爱'),end=' ')
print(st.count('力'))
#输出结果:2 0
这个函数也是之前在列表那一块讲过了,就不多说了
6.字符串的类型判断
(1)isdigit() 函数
格式:
字符串名.isdigit()
作用:判断这个字符串是否我纯数字(包括整数和浮点数)
返回:返回值为布尔类型(bool),如果是的话就返回True,否则就返回False
st='你爱玩,我爱你,你是冰城甜蜜蜜'
a='12345'
b='3.1415926'
print(st.isdigit())
print(a.isdigit())
print(b.isdigit())
#输出结果:False
# True
# False
(2)isalpha()函数
格式:
字符串名.isalpha()
作用:判断这个字符串是不是纯字符(英文和中文,特殊符号如+-*或者空格等等这些不算)
返回:返回值为布尔类型(bool),如果是的话就返回True,否则就返回False
st='你爱玩我爱你你是秉冰城甜蜜蜜'
a='12adsa'
b='localhost'
c='只因你太beautiful'
d='beautiful+you'
print(st.isalpha())
print(a.isalpha())
print(b.isalpha())
print(c.isalpha())
print(d.isalpha())
#输出结果:
True
False
True
True
False
(3)大小写判断
跟isdigit()、isalpha()函数一样,也有isupper()、islower() 函数可以用来判断字符串的大小写,返回也是布尔类型,这里我就不说了,用法也是跟上面的差不多的
7.字符大小写转换
(1)upper()函数,小写转大写
格式:
字符串名.upper()
作用:把字符串里面的全部字符转为大写(如果原来本身就是大写的话,转换了还是大写;当然了,中文又不是字母,转不了的)
a='awD'
q=a.upper()
print(q)
#输出结果:AWD
(2)lower()函数,大写转小写
格式:
字符串名.lower()
作用:把字符串里面全部字符转换为小写
str1 = 'ASDF'
print(str1.lower())
#输出结果:asdf
用法也是很简单的,就不多说了
(3)title()函数,标题化字符串
格式:
字符串名.title()
作用:返回’标题化‘的字符串,就是单词的开头为大写,其余为小写
st='play games'
print(st.title())
#输出结果:Play Games
用法也是非常简单的,就是把每个单词的开头字母变成大写
好了,这一期就到这里了,喜欢的话给个关注吧~~~
相关文章:
Python学习------起步7(字符串的连接、删除、修改、查询与统计、类型判断及字符串字母大小写转换)
目录 前言: 1.字符串的连接 join() 函数 2.字符串的删除&取代 replace()函数 3.字符串的修改&切割 (1)strip() 函数 (2)lstrip()函数 和 rstrip()函数 (3)split()函数-->…...
雪花算法snowflake
snowflake中文的意思是 雪花,雪片,所以翻译成雪花算法。它最早是twitter内部使用的分布式环境下的唯一ID生成算法。在2014年开源。雪花算法产生的背景当然是twitter高并发环境下对唯一ID生成的需求,得益于twitter内部高超的技术,雪…...
Part 4 描述性统计分析(占比 10%)——上
文章目录【后续会持续更新CDA Level I&II备考相关内容,敬请期待】【考试大纲】【考试内容】【备考资料】1、统计基本概念1.1、统计学的含义及应用1.1.1、统计学的含义1.2.1、统计学的应用1.2、统计学的基本概念1.2.1、数据及数据的分类1.2.2、总体和样本1.2.3、…...
Linux系统安全:安全技术和防火墙
目录 一、安全技术 1、安全技术 2、防火墙分类 二、防火墙 1、iptables五表五链 2、黑白名单 3、iptables基本语法 4、iptables选项 5、控制类型 6、隐藏扩展模块 7、显示扩展模块 8、iptables规则保存 9、自定义链使用 一、安全技术 1、安全技术 ①入侵检测系统…...
【干货】Python:turtle库的用法
【干货】Python:turtle库的用法1. turtle库概述2. turtle库与基本绘图2.1 导入库的三种方式2.1.12.1.22.1.32.2 窗体函数2.2 画笔状态函数2.2.1 seed(s)2.2.2 random()2.2.3 randint(a, b)2.2.4 getrandbits(k)2.2.5 randrange(start, stop[ , step])2.2.6 uniform(…...
信息安全与网络安全有什么区别?
生活中我们经常会听到要保障自己的或者企业的信息安全。那到底什么是信息安全呢?信息安全包含哪些内容?与网络安全又有什么区别呢?今天我们就一起来详细了解一下。什么叫做信息安全?信息安全定义如下:为数据处理系统建…...
花了5年时间,用过市面上95%的工具,终于找到这款万能报表工具
经常有粉丝问我有“哪个报表工具好用易上手?”或者是“有哪些适合绝大多数普通职场人的万能报表工具?” 从这里我大概总结出了大家选择报表工具最期望满足的3点: (1)简单易上手:也就是所谓的学习门槛要低…...
ESP32S3系列--SPI主机驱动详解(一)
一、目的SPI是一种串行同步接口,可用于与外围设备进行通信。ESP32S3自带4个SPI控制器外设,其中SPI0/SPI1内部专用,共用一组信号线,通过一个仲裁器访问外部Flash和PSRAM;SPI2/3各自使用一组信号线;开发者可以使用SPI2/3控制外部SPI…...
2023开工开学火热!远行的人们,把淘特箱包送上顶流
春暖花开,被疫情偷走的三年在今年开学季找补回来了。多个数据反馈,居民消费意愿大幅提升。在淘特上,开工开学节点就很是明显:1月30日以来,淘特箱包品类甚至远超2022年双11,成为开年“第一爆品”。与此同时&…...
Intel x86_64 PMU简介
文章目录前言一、性能监控概述二、CPUID information三、架构性能监控3.1 架构性能监控 Version 13.1.1 架构性能监控 Version 1 Facilities3.1.2 预定义的体系结构性能事件3.1.3 cmask demo测试参考资料前言 Intel 64 和 IA-32 架构提供了 PMU(Performance Monito…...
Vue (2)
文章目录1. 模板语法1.1 插值语法1.2 指令语法2. 数据绑定3. 穿插 el 和 data 的两种写法4. MVVM 模型1. 模板语法 root 容器中的代码称为 vue 模板 1.1 插值语法 1.2 指令语法 图一 : 简写 : v-bind: 是可以简写成 : 的 总结 : …...
ESP8266 + STC15基于AT指令通过TCP通讯协议获取时间
ESP8266 + STC15基于AT指令通过TCP通讯协议获取时间 如果纯粹拿32位的ESP8266模块给8位的单片机仅供授时工具使用,有点大材小用了。这里不讨论这个拿esp8266来单独开发使用。本案例只是通过学习esp8266 AT指令功能来验证方案的可行性。 🔖STC15 单片机采用的是:STC15F2K60S…...
谈谈Spring中Bean的生命周期?(让你瞬间通透~)
目录 1.Bean的生命周期 1.1、概括 1.2、图解 2、代码示例 2.1、初始化代码 2.2、初始化的前置方法和后置方法(重写) 2.3、Spring启动类 2.4、执行结果 2.5、经典面试问题 3.总结 1.Bean的生命周期 1.1、概括 Spring中Bean的生命周期就是Bean在…...
如何将VirtualBox虚拟机转换到VMware中
转换前的准备 首先需要你找到你的virtualbox以及VM安装到哪个文件夹里了,需要将这两个文件夹添加进环境变量Path中。 如果你记不清了,可以用everything全局搜索一下“VBoxManage.exe’以及“vmware-vdiskmanager.exe”,看一眼这个程序放到哪…...
洞庭龙梦(开发技巧和结构理论集)
1、经验来源,单一获取方式。进行形态等级展示。唯一游戏系统经验来源。无主线和支线剧情。2、玩家使用流通货币(充值货币),到玩家空间商城充值游戏,两人以上玩家进行游戏,掉落道具。交易系统游戏玩法&#…...
【23种设计模式】创建型模式详细介绍
前言 本文为 【23种设计模式】创建型模式详细介绍 相关内容介绍,下边具体将对单例模式,工厂方法模式,抽象工厂模式,建造者模式,原型模式,具体包括它们的特点与实现等进行详尽介绍~ 📌博主主页&…...
@Bean的处理流程,源码分析@Bean背后发生的事
文章目录写在前面关键类ConfigurationClassPostProcessor1、ConfigurationClassPostProcessor的注册2、ConfigurationClassPostProcessor的处理过程(1)parse方法中,Bean方法的处理(2)注册解析Bean标注的方法写在前面 …...
React Native 开发环境搭建(全平台详解)
React Native 开发环境搭建(全平台详解) 在开始使用 React Native 开发移动应用之前,正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南,涵盖 macOS 和 Windows 平台的配置步骤,如何在 Android 和 iOS…...
【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例
文章目录 ★ position 的五种类型及基本用法 ★ 一、position 属性概述 二、position 的五种类型详解(初学者版) 1. static(默认值) 2. relative(相对定位) 3. absolute(绝对定位) 4. fixed(固定定位) 5. sticky(粘性定位) 三、定位元素的层级关系(z-i…...
MVC 数据库
MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...
CocosCreator 之 JavaScript/TypeScript和Java的相互交互
引擎版本: 3.8.1 语言: JavaScript/TypeScript、C、Java 环境:Window 参考:Java原生反射机制 您好,我是鹤九日! 回顾 在上篇文章中:CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...
12.找到字符串中所有字母异位词
🧠 题目解析 题目描述: 给定两个字符串 s 和 p,找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义: 若两个字符串包含的字符种类和出现次数完全相同,顺序无所谓,则互为…...
【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)
骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术,它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton):由层级结构的骨头组成,类似于人体骨骼蒙皮 (Mesh Skinning):将模型网格顶点绑定到骨骼上,使骨骼移动…...
Redis的发布订阅模式与专业的 MQ(如 Kafka, RabbitMQ)相比,优缺点是什么?适用于哪些场景?
Redis 的发布订阅(Pub/Sub)模式与专业的 MQ(Message Queue)如 Kafka、RabbitMQ 进行比较,核心的权衡点在于:简单与速度 vs. 可靠与功能。 下面我们详细展开对比。 Redis Pub/Sub 的核心特点 它是一个发后…...
Python基于历史模拟方法实现投资组合风险管理的VaR与ES模型项目实战
说明:这是一个机器学习实战项目(附带数据代码文档),如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在金融市场日益复杂和波动加剧的背景下,风险管理成为金融机构和个人投资者关注的核心议题之一。VaR&…...
android RelativeLayout布局
<?xml version"1.0" encoding"utf-8"?> <RelativeLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height"match_parent"android:gravity&…...
SQL Server 触发器调用存储过程实现发送 HTTP 请求
文章目录 需求分析解决第 1 步:前置条件,启用 OLE 自动化方式 1:使用 SQL 实现启用 OLE 自动化方式 2:Sql Server 2005启动OLE自动化方式 3:Sql Server 2008启动OLE自动化第 2 步:创建存储过程第 3 步:创建触发器扩展 - 如何调试?第 1 步:登录 SQL Server 2008第 2 步…...
