当前位置: 首页 > news >正文

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(字符串的连接、删除、修改、查询与统计、类型判断及字符串字母大小写转换)

目录 前言&#xff1a; 1.字符串的连接 join() 函数 2.字符串的删除&取代 replace()函数 3.字符串的修改&切割 &#xff08;1&#xff09;strip() 函数 &#xff08;2&#xff09;lstrip()函数 和 rstrip()函数 &#xff08;3&#xff09;split()函数-->…...

雪花算法snowflake

snowflake中文的意思是 雪花&#xff0c;雪片&#xff0c;所以翻译成雪花算法。它最早是twitter内部使用的分布式环境下的唯一ID生成算法。在2014年开源。雪花算法产生的背景当然是twitter高并发环境下对唯一ID生成的需求&#xff0c;得益于twitter内部高超的技术&#xff0c;雪…...

Part 4 描述性统计分析(占比 10%)——上

文章目录【后续会持续更新CDA Level I&II备考相关内容&#xff0c;敬请期待】【考试大纲】【考试内容】【备考资料】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&#xff1a;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(…...

信息安全与网络安全有什么区别?

生活中我们经常会听到要保障自己的或者企业的信息安全。那到底什么是信息安全呢&#xff1f;信息安全包含哪些内容&#xff1f;与网络安全又有什么区别呢&#xff1f;今天我们就一起来详细了解一下。什么叫做信息安全&#xff1f;信息安全定义如下&#xff1a;为数据处理系统建…...

花了5年时间,用过市面上95%的工具,终于找到这款万能报表工具

经常有粉丝问我有“哪个报表工具好用易上手&#xff1f;”或者是“有哪些适合绝大多数普通职场人的万能报表工具&#xff1f;” 从这里我大概总结出了大家选择报表工具最期望满足的3点&#xff1a; &#xff08;1&#xff09;简单易上手&#xff1a;也就是所谓的学习门槛要低…...

ESP32S3系列--SPI主机驱动详解(一)

一、目的SPI是一种串行同步接口&#xff0c;可用于与外围设备进行通信。ESP32S3自带4个SPI控制器外设&#xff0c;其中SPI0/SPI1内部专用,共用一组信号线,通过一个仲裁器访问外部Flash和PSRAM&#xff1b;SPI2/3各自使用一组信号线&#xff1b;开发者可以使用SPI2/3控制外部SPI…...

2023开工开学火热!远行的人们,把淘特箱包送上顶流

春暖花开&#xff0c;被疫情偷走的三年在今年开学季找补回来了。多个数据反馈&#xff0c;居民消费意愿大幅提升。在淘特上&#xff0c;开工开学节点就很是明显&#xff1a;1月30日以来&#xff0c;淘特箱包品类甚至远超2022年双11&#xff0c;成为开年“第一爆品”。与此同时&…...

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&#xff08;Performance Monito…...

Vue (2)

文章目录1. 模板语法1.1 插值语法1.2 指令语法2. 数据绑定3. 穿插 el 和 data 的两种写法4. MVVM 模型1. 模板语法 root 容器中的代码称为 vue 模板 1.1 插值语法 1.2 指令语法 图一 &#xff1a; 简写 &#xff1a; v-bind: 是可以简写成 &#xff1a; 的 总结 &#xff1a; …...

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、初始化的前置方法和后置方法&#xff08;重写&#xff09; 2.3、Spring启动类 2.4、执行结果 2.5、经典面试问题 3.总结 1.Bean的生命周期 1.1、概括 Spring中Bean的生命周期就是Bean在…...

如何将VirtualBox虚拟机转换到VMware中

转换前的准备 首先需要你找到你的virtualbox以及VM安装到哪个文件夹里了&#xff0c;需要将这两个文件夹添加进环境变量Path中。 如果你记不清了&#xff0c;可以用everything全局搜索一下“VBoxManage.exe’以及“vmware-vdiskmanager.exe”&#xff0c;看一眼这个程序放到哪…...

洞庭龙梦(开发技巧和结构理论集)

1、经验来源&#xff0c;单一获取方式。进行形态等级展示。唯一游戏系统经验来源。无主线和支线剧情。2、玩家使用流通货币&#xff08;充值货币&#xff09;&#xff0c;到玩家空间商城充值游戏&#xff0c;两人以上玩家进行游戏&#xff0c;掉落道具。交易系统游戏玩法&#…...

【23种设计模式】创建型模式详细介绍

前言 本文为 【23种设计模式】创建型模式详细介绍 相关内容介绍&#xff0c;下边具体将对单例模式&#xff0c;工厂方法模式&#xff0c;抽象工厂模式&#xff0c;建造者模式&#xff0c;原型模式&#xff0c;具体包括它们的特点与实现等进行详尽介绍~ &#x1f4cc;博主主页&…...

@Bean的处理流程,源码分析@Bean背后发生的事

文章目录写在前面关键类ConfigurationClassPostProcessor1、ConfigurationClassPostProcessor的注册2、ConfigurationClassPostProcessor的处理过程&#xff08;1&#xff09;parse方法中&#xff0c;Bean方法的处理&#xff08;2&#xff09;注册解析Bean标注的方法写在前面 …...

静态网站/最新国际新闻10条

目录1. Undefined2. null3. Boolean4. String5. Number6. Symbol7. Object8. StringToNumber9. 装箱转换10. 封箱转换JavaScript 语言规定了七种语言类型。语言类型广泛用于变量、函数参数、表达式、函数返回值等场合。根据最新的语言标准&#xff0c;这 7 种语言类型是&#x…...

汕头网站备案/廊坊快速排名优化

D 题意&#xff1a; 就是让你构造一个n个点的数&#xff0c;然后&#xff0c;一个点度为i的权值为va[i]现在问你构造出的树&#xff0c;最大的权值和是多少。 思考&#xff1a; 刚开始看到感觉就是一共2*(n-1)个度&#xff0c;然后直接完全背包跑一遍&#xff0c;但是不对。然…...

免费自己做网站手机软件/脑白金网络营销

硬盘安装。无需光盘、U盘&#xff1b;Win8.1为主&#xff0c;Ubuntu14.04为辅&#xff0c;可将Windows或Ubuntu设置为开机默认启动项。在Ubuntu下可查看、操作Windows系统下的文件&#xff1b;适用于安装和14.04版本号相近的Ubuntu系统。假设以上所述正是你所须要的&#xff0c…...

手机怎样做网站图解/win7系统优化软件

Unity上对于图像的处理&#xff0c;假设单纯使用代码。那么非常遗憾&#xff0c;程序基本会跑死&#xff0c;毕竟是直接对像素的操作&#xff0c;读取写入都是比較耗费CPU和内存的。所以。这次由于项目须要想实现类似哈哈镜的效果。想来想去&#xff0c;还是认为用unity的Shade…...

美容医疗 网站建设/有链接的网站

所谓常量即只能读取不能编辑&#xff08;删除&#xff0c;修改&#xff09;的变量。 js并没有原始的常量说法&#xff08;即自定义的&#xff0c;原生态的&#xff09;&#xff0c;但是可以用一些偏僻的路子去创建。 1&#xff1a;const es6中的声明关键词。 上面声明了两个变量…...

陕西省住房城乡建设部门户网站/外包公司什么意思

缓存区溢出漏洞工具DoonaDoona是缓存区溢出漏洞工具BED的分支。它在BED的基础上&#xff0c;增加了更多插件&#xff0c;如nttp、proxy、rtsp、tftp等。同时&#xff0c;它对各个插件扩充了攻击载荷&#xff0c;这里也称为模糊用例&#xff08;fuzz case&#xff09;&#xff0…...