Python知识点精汇!字符串:定义、截取(索引)和其内置函数

news2024/11/17 18:53:39

目录

一、字符串的定义

二、字符串的截取

1.截取干啥的

2.怎么用截取

3.打印多次

4.两个字符串拼接在一起

三、字符串内置函数

1.查询函数:

(1)find(str,start,end)

(2)index(str,start,end)

2.大小写转换函数:

(1)upper()

(2)lower() 

(3)swapcase()

(4)capitalize()

(5)title()

3.分割字符串函数

(1)split(x,y)

(2)rsplit(x,y)

(3)splitlines()

(4)partition(x)

(5)rpartition(x)

4.合并与替换

(1)join(str)

 (2)replace(old,new,max)

(3)format(x1,x2,……)

5.字符串的比较

(1)max(str)

(2)min(str)

(3)ord(str)

(4)chr(原始值)

6.字符串计数

(1)count(str,start,end)

(2)len(str)

7.判断开头结尾字符串

(1)startswith(x)

 (2)endswith(x)

8.去掉两端多余字符

(1)lstrip(chars)

(2)rlstrip(chars)

(3)strip(chars)

9.字符串检测函数

(1)isalnum()

(2)islower()

(3)isupper()


一、字符串的定义

标准解释:字符串是一系列字符的有序集合。字符可以是字母、数字、符号、空格等。字符串的长度是其包含的字符数量。在编程中,字符串通常用引号括起来。

简单来说,字符串就是被单引号和双引号括住的东西。

例子:1是整数型的,而“1”就会变成字符串类型的1

二、字符串的截取

1.截取干啥的

比如,我们有字符串类型变量a=“123一二三;;;”

如果我们想输出其中的一部分,比如输出:23一

那么就会用到截取的知识。

2.怎么用截取

首先,我们既然想输出指定部分,那么就要先给它内部编个号,然后我们告诉计算机编号几到几,它就可以输出了。

具体的编号规则如下:

正向索引:第一个是0,第二个是1,以此类推……

反向索引:最后一个是-1,倒数第二个是-2,以此类推……

我们也可以借着下图来理解,定义字符串“Runoob”

 

正向索引和反向索引,随便用哪个都行,当然混着用也是可以的

具体的格式如下:

a="12三四56"    #假设你定义了字符串a
#输出第二个到第四个字符
print(a[1:4])

有人可能问了,第四个字符不是到3吗,怎么成4了?

这是因为, [ ] 中尊崇“左闭右开”原则。所以[1:4]相当于“大于等于编号1小于编号4”,就是字符“第2个到第4个了”,即最后边它是不包括的, 所以你要多加一位喽。(所以在反向索引时,也要尤其注意哦)

我们来看一看具体示例:

新问题:如果想输出从第2个一直到尾呢

我们只需要[ :]的后一个位置空着就行,如下:

同理,如果是从头开始,就可以把最前面的位置空着就行了。

3.打印多次

比如连续打印两次,加上“*2”即可,代码如下:

a="123天气真好!!"
print(a*2)

系统输出:

4.两个字符串拼接在一起

比如我们想在字符串a的后面加上点字,写个“+”然后写字符串就行,代码如下:

a="123天气真好!!"
print(a+"心情真好。")

系统输出

三、字符串内置函数

1.查询函数:

(1)find(str,start,end)

说明:

从编号start开始,一直到编号end结束,来查找str是否在字符串中,如果在,则输出str的编号位置,如果不在则输出-1

示例代码:

a="最近真的好忙,好郁闷!!"
b=a.find("忙",1,3)    #查找“忙”是不是在第2个元素到第3个元素之间
c=a.find("忙",1,7)    #查找“忙”是不是在第2个元素到第7个元素之间
print(b)
print(c)

系统输出:

注:这里的索引规则,同第二部分一样。

另外,如果你嫌写b和c麻烦,其实可以直接写成:

a="最近真的好忙,好郁闷!!"
print(a.find("忙",1,3))
print(a.find("忙",1,7))

(2)index(str,start,end)

唯一与find不同的是,find找不到会返回-1,而index找不到会报错

2.大小写转换函数:

(1)upper()

功能:将所有元素转换为大写

(注:a字符串的括号可以不加) 

(2)lower() 

功能:将所有元素转换为小写

(3)swapcase()

功能:将大写变成小写,将小写变成大写

(4)capitalize()

功能:第一个字符大写,其余小写

(5)title()

功能:每个单词首字母大写,其余小写

3.分割字符串函数

(1)split(x,y)

解释:从头开始,在字符串中寻找x,找到后,删除掉x,然后将x两侧的字符,分割成两部分字符串输出。y的含义是,寻找几次x。

如果y是1,那么从左开始,第一次找到后则停止,如果不填y,则默认一直查找。

 示例代码:

a="mynameisA.sir"
print(a.split("yn"))
print(a.split("i"))
print(a.split("i",1))

系统输出:

(2)rsplit(x,y)

与split(x,y)类似,只不过rsplit(x,y)是从右侧开始查找

(3)splitlines()

功能:针对多行的字符串分割,最后变成一个列表

示例:

注:splitlines(a)中的a可以不写 ,并且不加a的话,就不会出现\n了

注意:这里连用了三个双引号,是为了能够使得字符串分行书写

(4)partition(x)

功能:从做开始,找第一个x,并以x为界,分为三部分,x左一部分,x一部分,x右一部分

注:返回的是元组

(5)rpartition(x)

与partition(x)相同,只不过从右边开始找

4.合并与替换

(1)join(str)

格式:

b=“。”.join([a1,a2,a3])

解释:

将a1,a2,a3三个变量。并用“。”连接起来

示例:

当然,如果是在 每一个元素都插入的话,如下图格式:

 (2)replace(old,new,max)

解释:

将字符串中的old字符,替换成new,替换次数为max次

示例:

(3)format(x1,x2,……)

首先在原字符串中有 {} ,然后会被x1,x2依次替换

示例:

 注:{}里不能有东西哦

5.字符串的比较

(1)max(str)

功能:返回最大的字母

示例:

(2)min(str)

功能:返回最小字母

原理同max函数

(3)ord(str)

功能:将指定字符转换为原始值

print(ord("a"))

系统输出:97 

补充知识:原始值

在计算机中有一种编码,叫做ASCII ,在这个编码系统里,每一个字符都有对应的数字值,就叫原始值

(4)chr(原始值)

功能:将原始值转换为对应字符

print(chr("97"))

系统输出:a

6.字符串计数

(1)count(str,start,end)

解释:在字符串start到end范围内,查找str出现次数,并返回

这里的start,end同样遵循左闭右开原则

(2)len(str)

功能:计算字符串内字符个数

示例:

7.判断开头结尾字符串

(1)startswith(x)

功能:判断字符串是否以x开头,若是则返回True

 (2)endswith(x)

功:判断字符串是否以x结尾,若是则返回True

原理同startswith(x)

8.去掉两端多余字符

(1)lstrip(chars)

功能:去掉左边的字符chars,如果一直匹配,则一直去除,如果遇到不匹配的则立即停止

示例:

a = "aabbcc"
b=a.lstrip("a")
print(b)    #输出bbcc

a = "aabbcc"
b=a.lstrip("ab")
print(b)    #输出cc

a = "aabbcc"
b=a.lstrip("abc")
print(b)    #输出为空白

(2)rlstrip(chars)

从右边开始匹配,原理同lstrip(chars)

(3)strip(chars)

从左右两边同时匹配,原理同lstrip(chars)

9.字符串检测函数

(1)isalnum()

功能:判断字符串是否只包含数字和字母,若是则输出True

示例:

(2)islower()

功能:检测字符串是否都是小写字母

示例:

(3)isupper()

功能:检测字符串是否都是大写字母

原理同islower()

以上就是全部内容拉~~

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

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

相关文章

创建vue+electron项目流程

一个vue3和electron最基本的环境搭建步骤如下:// 安装 vite vue3 vite-plugin-vue-setup-extend less normalize.css mitt pinia vue-router npm create vuelatest npm i vite-plugin-vue-setup-extend -D npm i less -D npm i normalize.css -S &#xff0…

从0开始机器学习--Day27--主成分分析方法

主成分分析方法(Principal components analysis) 在降维算法中,比较普遍的是使用主成分分析方法(PCA) PCA算法简单示例 如图,假设我们有一个二维的特征,想要将其降为一维,简单的方法是寻找一条直线&#…

无效的目标发行版17和无法连接Maven进程问题

起因:我clean了一个模块的Maven想要重新下,他就开始报错。两次了都是这样。如果和我一样一开始都是好好的,直接找Maven的设置,在运行程序改,jre变成了11.它自己变成了我其他的jdk

【Android、IOS、Flutter、鸿蒙、ReactNative 】启动页

Android 设置启动页 自定义 splash.xml 通过themes.xml配置启动页背景图 IOS 设置启动页 LaunchScreen.storyboard 设置为启动页 storyboard页面绘制 Assets.xcassets 目录下导入图片 AppLogo Flutter 设置启动页 Flutter Android 设置启动页 自定义 launch_background.xm…

Java实现多线程编程

目录 一、创建线程 1.1.第一种方法:继承Thread类 1.2.第二种方法:实现Runnable接口 1.3.其他创建线程的方法 二、多线程的优势-增加运行速度 三、Thread类及常见方法 3.1 Thread常见的构造方法 3.2Thread的几个常见方法 3.2.1启动一个线程——sta…

【快速解决】kafka崩了,重启之后,想继续消费,怎么做?

目录 一、怎么寻找我们关心的主题在崩溃之前消费到了哪里? 1、一个问题: 2、查看消费者消费主题__consumer_offsets 3、一个重要前提:消费时要提交offset 二、指定 Offset 消费 假如遇到kafka崩了,你重启kafka之后&#xff0…

【设计模式】行为型模式(四):备忘录模式、中介者模式

《设计模式之行为型模式》系列,共包含以下文章: 行为型模式(一):模板方法模式、观察者模式行为型模式(二):策略模式、命令模式行为型模式(三):责…

GRE做题笔记(零散的个人经验)

locomotive机车By 1813, the Luddite resistance had all but vanished. all but表示“几乎完全”的程度,或者表示排除piston活塞attributed to 归因于how a sportsperson accounted for their own experience of stress 运动员如何解释自己的压力经历 ,…

【vmware+ubuntu16.04】vm虚拟机及镜像安装-tools安装包弹不出来问题

学习机器人这门课需要下载虚拟机,做一下记录 首先我下载的是vm虚拟机16, 下载版本可参考该文章课堂上我下载 的镜像是16.04,虚拟机安装教程和镜像添加可参考该博主 按照教程安装成功 安装tools,但是我的弹不出来那个压缩包&…

Redis设计与实现 学习笔记 第十七章 集群

Redis集群是Redis提供的分布式数据库方案,集群通过分片(sharding,水平切分)来进行数据共享,并提供复制和故障转移功能。 17.1 节点 一个Redis集群通常由多个节点(node)组成,在刚开…

第03章 文件编程

目标 了解Linux系统文件IO/标准IO基本概念掌握Linux系统文件IO/标准IO常用函数掌握Linux系统文件属性常用函数掌握Linux系统目录文件常用函数 3.1 Linux系统概述 3.1.1 预备知识(相关概念) (1)应用程序 和 内核程序 应用程序是…

51c大模型~合集42

我自己的原文哦~ https://blog.51cto.com/whaosoft/11859244 #猎户座 「草莓」即将上线,OpenAI新旗舰大模型曝光,代号「猎户座」 ChatGPT 要进化了? 本月初,OpenAI 创始人、CEO 山姆・奥特曼突然在 X 上发了一张照片&#xff0…

SpringBootTest常见错误解决

1.启动类所在包错误 问题 由于启动类所在包与需要自动注入的类的包不在一个包下: 启动类所在包: com.exmaple.test_02 但是对于需要注入的类却不在com.exmaple.test_02下或者其子包下,就会导致启动类无法扫描到该类,从而无法对…

初始JavaEE篇 —— 网络编程(2):了解套接字,从0到1实现回显服务器

找往期文章包括但不限于本期文章中不懂的知识点: 个人主页:我要学编程程(ಥ_ಥ)-CSDN博客 所属专栏:JavaEE 目录 TCP 与 UDP Socket套接字 UDP TCP 网络基础知识 在一篇文章中,我们了解了基础的网络知识,网络的出…

机器学习 AdaBoost 算法

AdaBoost 提升学习算法是通过训练多个弱分类算法实现一个强分类算法,做法非常朴素,在训练过程中,提供分类错误的数据权重,降低分类正确的权重,提高分类效果好的弱分类器权重,降低分类效果差的若分类器权重。…

C++编程技巧与规范-类和对象

类和对象 1. 静态对象的探讨与全局对象的构造顺序 静态对象的探讨 类中的静态成员变量(类类型静态成员) 类中静态变量的声明与定义&#xff08;类中声明类外定义&#xff09; #include<iostream> using namespace std;namespace _nmspl {class A{public:A():m_i(5){…

golang中的init函数

程序的初始化和执行都起始于 main 包。如果 main 包还导入了其它的包&#xff0c;那么就会在编译时将它们依次 导入。有时一个包会被多个包同时导入&#xff0c;那么它只会被导入一次&#xff08;例如很多包可能都会用到 fmt 包&#xff0c;但 它只会被导入一次&#x…

【大数据学习 | flume】flume之常见的sink组件

Flume Sink取出Channel中的数据&#xff0c;进行相应的存储文件系统&#xff0c;数据库&#xff0c;或者提交到远程服务器。Flume也提供了各种sink的实现&#xff0c;包括HDFS sink、Logger sink、Avro sink、File Roll sink、HBase sink&#xff0c;。 ​ Flume Sink在设置存…

数学分组求偶数和

问题描述 小M面对一组从 1 到 9 的数字&#xff0c;这些数字被分成多个小组&#xff0c;并从每个小组中选择一个数字组成一个新的数。目标是使得这个新数的各位数字之和为偶数。任务是计算出有多少种不同的分组和选择方法可以达到这一目标。 numbers: 一个由多个整数字符串组…

构建安全护盾:HarmonyOS 应用的数据安全审计与日志管理实战

文章目录 前言数据安全审计与日志管理的重要性什么是数据安全审计&#xff1f;为什么需要日志管理&#xff1f; 数据安全审计与日志管理的基本原则实现数据安全审计与日志管理的技术方案1. 数据安全审计的实现2. 日志管理的实现 ArkUI 与 ArkTS 的代码示例1. 审计日志记录2. 实…