Python学习------起步7(字符串的连接、删除、修改、查询与统计、类型判断及字符串字母大小写转换)

news2024/11/27 21:07:42

 

目录

前言: 

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

用法也是非常简单的,就是把每个单词的开头字母变成大写

        好了,这一期就到这里了,喜欢的话给个关注吧~~~

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

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

相关文章

Dubbo3简单使用

Dubbo3简单使用 &#x1f449; 使用Spring Boot实现Dubbo3&#xff0c;请参见以下地址。 # Dubbo3官网地址 https://cn.dubbo.apache.org/zh/# 使用SpringBoot实现Dubbo3的地址 https://cn.dubbo.apache.org/zh/docs3-v2/java-sdk/quick-start/spring-boot/# 该项目的git地址…

C语言位域(位段)详解

有些数据在存储时并不需要占用一个完整的字节&#xff0c;只需要占用一个或几个二进制位即可。例如开关只有通电和断电两种状态&#xff0c;用 0 和 1 表示足以&#xff0c;也就是用一个二进位。正是基于这种考虑&#xff0c;C语言又提供了一种叫做位域的数据结构。在结构体定义…

在CANoeCANalyzer中“在线回放”CAN Log.asc/blf文件

案例背景&#xff08;共11页精讲&#xff09;&#xff1a; 该篇博文将告诉您&#xff0c;在CANoe/CANalyzer中&#xff0c;“Online在线”模式下&#xff0c;回放一个CAN Log.asc/blf文件&#xff0c;重现那时CAN网络中CAM Message/报文的收发过程&#xff0c;让ECU在该环境下…

面试题:Redis常用数据结构

1 string基本编码方式&#xff0c;基于简单动态字符串(SDS)实现&#xff0c;存储上线为512mb.如果存储的SDS长度小于44字节&#xff0c;则会采用EMBSTR编码&#xff0c;此时object head与SDS是一段连续空间。申请内存时只需要调用一次内存分配函数&#xff0c;效率更高。如果存…

【官方 | 计算机二级Python教程】第九章:Python标准库概览

【官方 | 计算机二级Python教程】第九章&#xff1a;Python标准库概览参考书目第九章&#xff1a;Python标准库概览本章知识导图10.1 turtle库10.2 random库10.3 time库习题本文代码编译环境及版本更新日志参考书目 拜读的是计算机等级考试官方推荐教程 《全国计算机等级考试二…

JavaScript入门

介绍:JavaScript(通常缩写为JS)是一门基于原型和头等函数的多范式高级解释型编程语言, 它支持面向对象程序设计、指令式编程和函数式编程。它提供方法来操控文本、数组、日期和正则表达式等。不支持I/O, 比如网络、存储和图形等, 但这些都可以由它的宿主环境提供支持。目前它被…

以太网知识-GMII / RGMII接口

今天和海翎光电的小编一起分析MII/RMII/SMII&#xff0c;以及GMII/RGMII/SGMII接口的信号定义&#xff0c;及相关知识&#xff0c;同时小编也对RJ-45接口进行了总结&#xff0c;分析了在10/100模式下和1000M模式下的连接方法。GMII 接口分析GMII接口提供了8位数据通道&#xff…

“青春树儿童摄影网”首页制作

“青春树儿童摄影网”首页制作一、实验名称&#xff1a;二、实验日期&#xff1a;三、实验目的&#xff1a;四、实验内容&#xff1a;五、实验步骤&#xff1a;六、实验结果&#xff1a;七、源程序&#xff1a;八、心得体会&#xff1a;一、实验名称&#xff1a; “青春树儿童…

Nginx转发http到https和开机自动启动

场景&#xff1a; 以下都是基于windows系统&#xff08;ip为虚构&#xff09; 1.ip:172.16.54.55需要访问172.16.54.57的接口服务&#xff0c;来查看机械臂的运行状况 2.存在网络隔离&#xff0c;172.16.54.55无法直接访问172.16.54.57 3.172.16.54.56与172.16.54.57是机械…

reac面试题

1.React有什么特点&#xff1f;&#xff08;react的主要功能有哪些&#xff1f;&#xff09; 它用于虚拟DOM&#xff0c;组件化设计模式&#xff0c;声明式代码&#xff0c;单向数据流&#xff0c;使用jsx描述信息等特点 2.什么是组件化设计模式 复用的代码可以抽成组件共同…

VS Code 1.75 发布!

欢迎使用 2023 年 1 月版的 Visual Studio Code。希望您喜欢此版本中的许多更新&#xff0c;其中一些主要亮点包括&#xff1a;配置文件、VS Marketplace 签名、辅助功能改进、更轻松地调整多视图大小、树视图搜索历史、新的 Git 命令等等。让我们一起看看吧&#xff01; 配置文…

真实还原项目案例

真实模拟项目案例&#xff1a; 核心和出口用ospf&#xff0c;出口ospf路由用 default-route-advertise always 解决默认路由。 其它的都是常规的就不说了&#xff0c;都在配置里看配置。 出口路由配置&#xff1a; [H3C]dis current-configuration version 7.1.064, Release 04…

中国大学mooc 机器人操作系统讲义以及部分笔记

这里写目录标题二进制与源码包1.7 安装RoboWare Studio新的连接配套代码 官方看了一下课程官方的讲义连接&#xff0c;似乎很多页面已经丢失&#xff1f;或者是未授权&#xff1f;二进制与源码包 https://sychaichangkun.gitbooks.io/ros-tutorial-icourse163/content/chapter…

Web3中文|太心急!谷歌匆忙上线自家“ChatGPT”导致市值蒸发逾千亿美元

谷歌想证明它可以在AI竞赛中与微软抗衡&#xff0c;创建一个新的人工智能搜索引擎&#xff0c;但一个错误回答最终导致母公司 Alphabet 的市场损失超过千亿美元。 低开低走的美股市场 周三&#xff0c;美股三大指数低开低走。道琼斯指数收盘下跌207.68点&#xff0c;跌幅0.61%…

设计模式之单例模式(C++)

作者&#xff1a;翟天保Steven 版权声明&#xff1a;著作权归作者所有&#xff0c;商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处 一、单例模式是什么&#xff1f; 单例模式是一种创建型的软件设计模式&#xff0c;在工程项目中非常常见。通过单例模式的设计&am…

具有大部分相似的项目之间的项目整合

1.将多个项目文件合并&#xff0c;如&#xff1a;c2文件夹和c3文件夹不同&#xff0c;其余文件都是可以一起用的 2. router/index.js (1) 声明 公用路由&#xff0c;如 const common [{// :xxxx 代表任意匹配&#xff08;输啥都可以匹配&#xff09;path: /:channel/login,c…

html 浏览器存储方式

浏览器有三种本地存储方式&#xff1a; 1、localstorage 2、sessionStorage 3、cookie 浏览器 F12 打开调试模式&#xff0c;可以看到&#xff1a; 点击对应域名&#xff0c;可以看到当前域名下存储的数据&#xff0c;是以key&#xff0c;value形式存储的。 三种方式的共同…

某程序员去华为面试,因为错了一道题而被淘汰

题目有一道数学的逻辑题&#xff0c;这种提一般智商测试或者公务员考试中经常见到&#xff0c;传说华为有道面试题是这样的&#xff0c;求出下划线的数字应该是多少&#xff1f;请准备好纸和笔&#xff0c;思考10分钟&#xff0c;看看你能否得出正确答案。1分钟后。。。2分钟后…

MySQl学习(从入门到精通11)

MySQl学习&#xff08;从入门到精通11&#xff09;第 14 章_视图1. 常见的数据库对象2. 视图概述2. 1 为什么使用视图&#xff1f;2. 2 视图的理解3. 创建视图3. 1 创建单表视图3. 2 创建多表联合视图3. 3 基于视图创建视图4. 查看视图5. 更新视图的数据5. 1 一般情况5. 2 不可…

餐饮企业数据可视化大屏(智慧餐饮)

随着信息技术的深入发展&#xff0c;数据大屏的适用场景日益广泛&#xff0c;集工作汇报、实时监控和预测分析等功能于一身。 数据可视化的本质是视觉对话&#xff0c;数据可视化将数据分析技术与图形技术结合&#xff0c;清晰有效地将分析结果信息进行解读和传达。 当前很多餐…