PYTHON学习笔记(八、字符串及的使用)

目录

1、字符串

1.1、字符串的常用操作

1.2、格式化字符串

1.2.1、占位符格式化字符串

1.2.2、f-string格式化字符串

1.2.3、str.format( )格式化字符串

1.3、数据的验证

1.4、正则表达式

1.5.1元字符

1.5.2限定符

1.5.3其他字符

1.5.4re模块


1、字符串

1.1、字符串的常用操作

方法名

描述说明

str.lower()

str字符串全部转成小写字母,结果为一个新的字符串

str.upper()

str字符串全部转成大写字母,结果为一个新的字符串

str.split(sep=None)

str按照指定的分隔符sep进行分隔,结果为列表类型

str.count(sub)

结果为sub这个字符串在str中出现的次数

str.find(sub)

查询sub这个字符串在str中是否存在,如果不存在结果为-1,如果存在,结果为sub首次出现的索引

str.index(sub)

功能与find()相同,区别在于要查询的子串sub不存在时,程序报错

str.startswith(s)

查询字符串str是否以子串s开头

str.endswith(s)

查询字符串str是否以子串s结尾

str.replace(old,news)

使用news替换字符串s中所有的old字符串,结果是一个新的字符串

str.center(width,fillchar)

字符串str在指定的宽度范围内居中,可以使用fillchar进行填充

str.join(iter)

iter中的每个元素的后面都增加一个新的字符串str

str.strip(chars)

从字符串中去掉左侧和右侧chars中列出的字符串

str.lstrip(chars)

从字符串中去掉左侧chars中列出的字符串

str.rstrip(chars)

从字符串中去掉右侧chars中列出的字符串

1.2、格式化字符串

格式化字符串是指在字符串中插入特定的占位符,以便在运行时将变量的值动态地替换成字符串中的相应位置。

通过格式化字符串,可以方便地将变量的值和其他文本内容组合成一个完整的字符串。在许多编程语言中,都有内置的格式化字符串的函数或语法。

格式化字符串有3种方法:占位符、f-string、str.format( )。

1.2.1、占位符格式化字符串

当我们使用占位符时,有以下三种占位符时较为常用的:

占位符描述
%s替换字符串格式
%d替换十进制整数格式
%f替换浮点数格式

对于这几种占位符的使用,早在ROS学习笔记(九、Python编写服务器和客户端)中已有使用。【【链接如下:http://t.csdnimg.cn/j7mpV】】

在ros笔记中编写服务器时,我们编写的代码如下所示:

在1位置处,在一个完整的字符串中使用了%s占位符,在完整的字符串外面,则是变量的值,最后将会输出“ hello world ( time ) ”。

同理,可得%d和%f的使用方法。

1.2.2、f-string格式化字符串

f-string的使用格式早在我的PYTHON学习笔记(一、python基础语法)中有过涉及。具体代码如下所示:

【【链接如下:http://t.csdnimg.cn/nzLJe】】

name = '小鬼'
age = '18'
score = '99.99'
d1 = f'我的名字是:{name},我的年龄是:{age},我的考试的分数是:{score}'
print(d1)输出结果:
我的名字是:小鬼,我的年龄是:18,我的考试的分数是:99.99

1.2.3、str.format( )格式化字符串

str.format( )格式化字符串的意思是:通过在大括号中放入序列号,按照序列号调用format( )函数中的变量的方法。

示例如下:

name = '小鬼'
age = '18'
score = '99.99'
d1 = '我的名字是:{0},我的年龄是:{1},我的考试的分数是:{2}'
print(d1.format(name,age,score))输出结果:
我的名字是:小鬼,我的年龄是:18,我的考试的分数是:99.99

当然,format( )函数可以做到更加详细的应用,有如下一些应用:

形式描述
引导符号,后面的所有符号都需要引导符
填充用于填充单个字符
对齐方式<为左对齐,>右对齐,^居中对齐
宽度字符串的输出宽度
数字的千位分隔符
.精度浮点数,小数部分的精度或字符串的最大输出长度
类型

整数类型:b/d/o/x/X

浮点数类型:e/E/f/%

1.3、数据的验证

数据的验证是指:程序对用户输入的数据进行合法性的验证。

数据的验证包含以下指令,可以对数据进行验证:

方法名

描述说明

str.isdigit()

所有字符都是数字(阿拉伯数字)

str. isnumeric()

所有字符都是数字

str. isalpha()

所有字符都是字母(包含中文字符)

str.isalnum()

所有字符都是数字或字母(包含中文字符)

str.islower()

所有字符都是小写

str.isupper()

所有字符都是大写

str.istitle()

所有字符都是首字母大写

str.isspace()

所有字符都是空白字符(\n\t等)

1.4、正则表达式

正则表达式是一种用于匹配和处理文本的工具,它可以用来在文本中查找、替换、提取或验证特定的模式。正则表达式可以快速、方便地对文本进行复杂的操作,因此在计算机科学和软件开发中非常常用。

正则表达式的出现主要是为了满足处理文本的需求。在大量的文本处理任务中,如文本搜索、文件批量处理、数据清洗等,正则表达式可以帮助我们高效地完成工作。正则表达式具有强大的模式匹配能力,在处理复杂的文本结构时非常有用。

通过使用正则表达式,我们可以灵活地指定需要匹配的模式,包括具体的字符、字符集合、数量、位置等。正则表达式还提供了一些特殊字符和操作符,用于表示特定的模式,如通配符、分组、选择、重复等。通过灵活地组合和使用这些模式和操作符,我们可以实现对文本的精确匹配和处理。

1.5.1元字符

元字符是:具有特殊意义的专用字符。

描述说明

举例

结果

匹配任意字符(除\n

p\nytho\tn

pytho\tn

匹配字母、数字、下划线

python\n123’

python123

匹配非字母、数字、下划线

python\n123’

\n

匹配任意空白字符

python\t123’

\t

匹配任意非空白字符

python\t123’

python123

匹配任意十进制数

python\t123’

123

1.5.2限定符

限定符是:是用来限定匹配次数的

限定

描述说明

举例

结果

匹配前面的字符0次或1

colou?r

可以匹配colorcolour

+

匹配前面的字符1次或多次

colou+r

可以匹配colourcolouu...r

*

匹配前面的字符0次或多次

colou*r

可以匹配colorcolouu....r

{n}

匹配前面的字符n

colou{2}r

可以匹配colouur

{n,}

匹配前面的字符最少n

colou{2,}r

可以匹配colouurcolouuu...r

{n,m}

匹配前面的字符最小n次,最多m

colou{2,4}r

可以匹配colouurcolouuurcolouuuur

1.5.3其他字符

其它字符

描述说明

举例

结果

区间字符[ ]

匹配[ ]中所指定的字符

[.?!]

[0-9]

匹配标点符号点、问号,感叹号

匹配0123456789

排除字符^

匹配不在[ ]中指定的字符

[^0-9]

匹配除0123456789的字符

选择字符|

用于匹配|左右的任意字符

\d{18}|\d{15}

匹配15位身份证或18位身份证

转义字符

Python中的转义字符

\.

.作为普通字符使用

[\u4e00-\u9fa5]

匹配任意一个汉字

分组()

改变限定符的作用

six|fourth

(six|four)th

匹配sixfourth

匹配sixthfourth

1.5.4re模块

re模块是内置模块,用于实现python中正则表达式的操作。

函数

功能描述

re.match(pattern,string,flags=0)

用于从字符串的开始位置进行匹配,如果起始位置匹配成功,结果为Match对象,否则结果为None

re.search(pattern,string,flags=0)

用于在整个字符串中搜索第一个匹配的值,如果匹配成功,结果为Match对象,否则结果为None

re.findall(pattern,string,flags=0)

用于在整个字符串搜索所有符合正则表达式的值,结果是一个列表类型。

re.sub (pattern,repl,string,count,flags=0)

用于实现对字符串中指定子串的替换

re.split(pattern,string,maxsplit,flags=0)

字符串中的split()方法功能相同,都是分隔字符串

我们对字符串的学习就结束了!!!(●ˇ∀ˇ●)

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

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

相关文章

【HarmonyOS】应用推送使用个推SDK如何实现?

【HarmonyOS】应用推送使用个推SDK如何实现&#xff1f; 前言 个推和极光都是市面上很成熟的推送第三方SDK了。今天讲讲个推SDK在鸿蒙中如何集成使用。 存在即合理&#xff0c;三方SDK推送给我们带来了极大的好处&#xff0c;首先在服务器后台处理一套API就可搞定&#xff0…

Android 去掉顶部默认导航栏 修改状态栏背景颜色

在 Android 新建项目后&#xff0c;存在顶部的默认导航栏&#xff0c;我们可以通过下面方式去掉&#xff1b;同时&#xff0c;也可以修改状态栏的背景颜色&#xff08;状态栏&#xff1a;顶部显示时间、电池电量那一栏&#xff09; 一、去掉顶部默认导航栏 1. 方式一&#xff…

CC-Link转Profinet协议网关功能与配置详解

怎么样才能把CC-Link和Profinet网络连接起来呢?这几天有几个朋友问到了这个问题&#xff0c;作者在这里统一为大家详细说明一下。其实有一个设备可以很轻松地解决这个问题&#xff0c;名为JM-PN-CCLK&#xff0c;下面是详细介绍。 一&#xff0c;产品主要功能 1、捷米特JM-P…

PostgreSQL使用(四)——数据查询

说明&#xff1a;对于一门SQL语言&#xff0c;数据查询是我们非常常用的&#xff0c;也是SQL语言中非常大的一块。本文介绍PostgreSQL使用中的数据查询&#xff0c;如有一张表&#xff0c;内容如下&#xff1a; 简单查询 --- 1.查询某张表的全部数据 select * from tb_student…

【数据结构】手把手教你单链表(c语言)(附源码)

&#x1f31f;&#x1f31f;作者主页&#xff1a;ephemerals__ &#x1f31f;&#x1f31f;所属专栏&#xff1a;数据结构 目录 前言 1.单链表的概念与结构 2.单链表的结构定义 3.单链表的实现 3.1 单链表的方法声明 3.2 单链表方法实现 3.2.1 打印链表 3.2.2 创建新…

DB2 SQL Error: SQLCODE=-302, SQLSTATE=22001, SQLERRMC=null

文章目录 一、报错内容二、原因三、DB2中的VARCHAR(100)类型能存储多少汉字&#xff1f; 一、报错内容 Cause: com.ibm.db2.jcc.am.mo: DB2 SQL Error: SQLCODE-302, SQLSTATE22001, SQLERRMCnull, DRIVER3.58.82 ; DB2 SQL Error: SQLCODE-302, SQLSTATE22001, SQLERRMCnull,…

Redis 7.x 系列【26】集群模式动态扩容、动态缩容

有道无术&#xff0c;术尚可求&#xff0c;有术无道&#xff0c;止于术。 本系列Redis 版本 7.2.5 源码地址&#xff1a;https://gitee.com/pearl-organization/study-redis-demo 文章目录 1. 动态扩容1.1 安装、启动1.2 加入新节点1.3 分配哈希槽1.4 加入从节点 2. 缩容2.1 删…

文献解读-群体测序-第二十三期|《一项前瞻性队列研究中膀胱癌的驱动和乘客DNA甲基化非侵入诊断和监测》

关键词&#xff1a;群体测序&#xff1b;基因测序&#xff1b;变异检测&#xff1b; 文献简介 标题&#xff08;英文&#xff09;&#xff1a;Non-invasive diagnosis and surveillance of bladder cancer with driver and passenger DNA methylation in a prospective cohort…

Ryujinx(Switch模拟器) v1.1.1361 汉化版

Ryujinx 是一款免费、开源的 Nintendo Switch 模拟器&#xff0c;它可以在电脑上模拟 Nintendo Switch 游戏机的运行环境&#xff0c;让玩家们能够在 PC 上畅玩 Switch 游戏。Ryujinx 支持大部分 Nintendo Switch 游戏&#xff0c;包括 The Legend of Zelda: Breath of the Wil…

生成式AI的双重路径:Chat与Agent的融合与竞争

文章目录 每日一句正能量前言整体介绍对话系统&#xff08;Chat&#xff09;自主代理&#xff08;Agent&#xff09;结论 技术对比技术差异优势与劣势技术挑战结论 未来展望发展趋势Chat与Agent的前景社会和经济影响结论 后记 每日一句正能量 在避风的港湾里&#xff0c;找不到…

【Qt 】JSON 数据格式详解

文章目录 1. JSON 有什么作用?2. JSON 的特点3. JSON 的两种数据格式3.1 JSON 数组3.2 JSON 对象 4. Qt 中如何使用 JSON 呢&#xff1f;4.1 QJsonObject4.2 QJsonArray4.3 QJsonValue4.4 QJsonDocument 5. 构建 JSON 字符串6. 解析 JSON 字符串 1. JSON 有什么作用? &#x…

四、单线程多路IO复用+多线程业务工作池

文章目录 一、前言1 编译方法 二、单线程多路IO复用多线程业务工作池结构三、重写Client_Context类四、编写Server类 一、前言 我们以及讲完单线程多路IO复用 以及任务调度与执行的C线程池&#xff0c;接下来我们就给他结合起来。 由于项目变大&#xff0c;尝试解耦项目&#…

谷粒商城实战笔记-66-商品服务-API-品牌管理-JSR303数据校验

文章目录 一&#xff0c;引入JSR 303依赖二&#xff0c;接口参数启用校验功能三&#xff0c;给字段添加校验注解NotBlank 和 NotNull 的区别NotBlankNotNull比较 四&#xff0c;BindingResult获取校验结果五&#xff0c;自定义错误消息六&#xff0c;其他校验规则 在Web应用程序…

【AIGC】构建自己的谷歌搜索引擎服务并使用

一、谷歌 谷歌的搜索引擎需要自己创建服务才能启用检索api。&#xff08;需自行翻墙和创建自己的谷歌账号&#xff09; 1.1 API服务创建 1&#xff09;登陆https://console.cloud.google.com/: 2&#xff09; 选择新建项目&#xff0c;取号项目名即可&#xff08;比如:Olin…

【Java】/* 异常 */

目录 ​编辑 一、错误和异常的体系 二、异常 2.1 异常的分类 2.2 异常的处理形式 2.3 如何抛出异常 2.4 捕获处理异常 2.5 finally存在的意义 2.6 异常处理流程总结 2.7 自定义异常类 一、错误和异常的体系 1. Java中所有的异常和错误都有对应的类来进行描述。 2. 由…

【日常记录】【JS】JS中查询参数处理工具URLSearchParams

文章目录 1. 引言2. URLSearchParams2.1 URLSearchParams 的构造函数2.2 append() 方法2.3 delete() 方法2.4 entries() 方法2.5 forEach() 方法2.6 get() 方法2.7 getAll() 方法2.8 has() 方法2.9 keys() 方法2.10 set() 方法2.11 toString() 方法2.12 values() 方法 参考链接…

Protobuf序列化原理学习

Protobuf 序列化原理学习 1. 基本概念 消息&#xff1a;由于Protocp Buffer主要用于数据存储、网络通信的场景&#xff0c;将结构化的数据&#xff08;数据结构或对象&#xff09;进行序列化&#xff0c;生成二进制串来保存或传输。把要序列化的结构化数据称为**消息**。 T -…

Activiti学习之入门个人任务(07)

这里写目录标题 一、分配任务负责人1.1 固定分配1.2 表达式分配1.2.1 UEL表达式1.2.2 使用流程变量分配任务1.2.3 注意事项 1.3 监听器分配 二、查询任务2.1 查询负责人待办2.2 关联businessKey 三、办理任务 一、分配任务负责人 1.1 固定分配 在进行业务流程建模时指定固定的…

vdb:虚拟数据库

将文件虚拟成数据库&#xff0c;序列化写入、反序列化读取、直接读取。

离散型制造业中,MES系统的应用场景

在离散型制造业中&#xff0c;MES&#xff08;制造执行系统&#xff09;系统的应用场景极为丰富且关键&#xff0c;它贯穿于整个生产过程的各个环节&#xff0c;从生产计划到生产执行&#xff0c;再到质量控制和物料管理&#xff0c;都发挥着不可替代的作用。以下是离散制造业中…