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’ | p、y、t、h、o、\t、n |
| 匹配字母、数字、下划线 | ‘python\n123’ | p、y、t、h、o、n、1、2、3 |
| 匹配非字母、数字、下划线 | ‘python\n123’ | \n |
| 匹配任意空白字符 | ‘python\t123’ | \t |
| 匹配任意非空白字符 | ‘python\t123’ | p、y、t、h、o、n、1、2、3 |
| 匹配任意十进制数 | ‘python\t123’ | 1、2、3 |
1.5.2限定符
限定符是:是用来限定匹配次数的
| 限定符 | 描述说明 | 举例 | 结果 |
| ? | 匹配前面的字符0次或1次 | colou?r | 可以匹配color或colour |
| + | 匹配前面的字符1次或多次 | colou+r | 可以匹配colour或colouu...r |
| * | 匹配前面的字符0次或多次 | colou*r | 可以匹配color或colouu....r |
| {n} | 匹配前面的字符n次 | colou{2}r | 可以匹配colouur |
| {n,} | 匹配前面的字符最少n次 | colou{2,}r | 可以匹配colouur或colouuu...r |
| {n,m} | 匹配前面的字符最小n次,最多m次 | colou{2,4}r | 可以匹配colouur或colouuur或colouuuur |
1.5.3其他字符
| 其它字符 | 描述说明 | 举例 | 结果 |
| 区间字符[ ] | 匹配[ ]中所指定的字符 | [.?!] [0-9] | 匹配标点符号点、问号,感叹号 匹配0、1、2、3、4、5、6、7、8、9 |
| 排除字符^ | 匹配不在[ ]中指定的字符 | [^0-9] | 匹配除0、1、2、3、4、5、6、7、8、9的字符 |
| 选择字符| | 用于匹配|左右的任意字符 | \d{18}|\d{15} | 匹配15位身份证或18位身份证 |
| 转义字符 | 同Python中的转义字符 | \. | 将.作为普通字符使用 |
| [\u4e00-\u9fa5] | 匹配任意一个汉字 | ||
| 分组() | 改变限定符的作用 | six|fourth (six|four)th | 匹配six或fourth 匹配sixth或fourth |
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()方法功能相同,都是分隔字符串 |
我们对字符串的学习就结束了!!!(●ˇ∀ˇ●)
相关文章:
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、字符…...
文件共享功能无法使用提示错误代码0x80004005【笔记】
环境情况: 其他电脑可以正常访问共享端,但有一台电脑访问提示错误代码0x80004005。 处理检查: 搜索里输入“启用或关闭Windows功能”按回车键,在“启用或关闭Windows功能”里将“SMB 1.0/CIFS文件共享支持”勾选后(故…...
FTP(File Transfer Protocal,文件传输协议)
文章目录 引言FTP管理工具FTP客户端FTP连接模式控制连接数据连接FTP命令/响应FTP命令FTP响应FTPSSFTP引言 FTP(File Transfer Protocal,文件传输协议)用于建立两台主机间的数据文件传输下载。使用客户/服务器(Client/Server)架构,基于TCP协议,服务端口为21。 FTP链接…...
DevEco Studio中使用Qt,编写HarmonyOS程序
文章目录 1.操作2.注意事项2.1.adapter_ts2.1.手机插到电脑后,DevEco无法识别 1.操作 最近需要尝试把之前在Windwos下用Qt实现的程序移植到鸿蒙(HarmonyOS)系统上。 我使用的DevEco版本是5.03.501 找了一下资料,官方࿰…...
基于单文档的MFC图像增强
目录 function.h ColorEnhanceDib.h ColorEnhanceDib.cpp Dib.h Dib.cpp FrequencyFilterDib.h FrequencyFilterDib.cpp GrayTransformDib.h GrayTransformDib.cpp HistogramDib.h HistogramDib.cpp SharpenProcessDib.h SharpenProcessDib.cpp SmoothProcessDib.h Sm…...
云计算实训13——DNS域名解析、ntp时间服务器配置、主从DNS配置、多区域DNS搭建
一、DNS域名解析 1.正向解析 将域名解析为IP地址 DNS正向解析核心配置 (1)安装bind [rootdns ~]# yum -y install bind (2)编辑配置文件 编辑named.conf文件,限定访问权限 [rootdns ~]# vim /etc/named.conf 编辑named.rfc文件,指定要访问的域名 [ro…...
【C#】Visual Studio2022打包依赖第三方库的winForm程序为exe
0.简介 IDE:VS2022 平台:C# .NetFramework4.7.2 WinForm界面 有GDAL、EEplus第三方库的依赖,所以在其他未安装环境的电脑中功能无法使用。 1. 安装 1.1 运行文件输出 在VS扩展中选择管理扩展,安装:Microsoft Visua…...
《算法笔记》总结No.11——数字处理(上)欧拉筛选
机试中存在部分涉及到较复杂数字的问题,这是编码的基本功,各位一定要得心应手。 目录 一.最大公约数和最小公倍数 1.最大公约数 2.最小公倍数 二.素数 1.判断指定数 2.输出所有素数 3.精进不休——埃拉托斯特尼筛法 4.达到更优!——…...
DP学习——享元模式
学而时习之,温故而知新。 享元模式 名词解析 有必要解释下“享元”两字,英文原文是flyweight pattern——轻量级模式,但是翻译过来的“享元”两字太牛逼了——褒贬不一,翻译的他妈都不认识。 享元的高雅在于: 享:共享/共用 元:…...
无人机10公里WiFi图传摄像模组,飞睿智能超清远距离无线监控,智能安防新潮流
在这个科技日新月异的时代,我们对影像的捕捉和传播有了更高的要求。从传统的有线传输到无线WiFi图传,每一次技术的飞跃都为我们带来了全新的视觉体验。今天,我们要探讨的,正是一款具有划时代意义的科技产品——飞睿智能10公里WiFi…...
SAP S/4HANA Cloud Public Edition
即装即用的云ERP软件。借助SaaS模式为企业提供完备、现代化的ERP 云套件,为企业带来新的技术突破,如自动化的业务流程与基于数据的商业分析。企业可选择这款智能云ERP软件,快速实现自身价值。 什么是 SAP S/4HANA Cloud Public Edition&#…...
LabVIEW汽车动态信号模拟系统
随着汽车工业的快速发展,对汽车电子控制单元(ECU)的测试与仿真需求日益增加。开发了一种基于LabVIEW软件开发的汽车动态信号模拟系统,该系统能有效模拟ECU在实车环境下的工作状态,为ECU的开发和测试提供了一个高效、经…...
chrome 插件:content-script 部分逻辑在页面无法生效,可考虑插入 script 到页面上
背景: 某页面有个输入框, 用的应该是什么库里的组件, 直接修改内容不生效/机制不明确, 于是使用 paste event 粘贴到输入框, 结果发现也不行 定位: 使用 mutationObserver , 发现事件确实触发了, 输入框内容变了, 但马上又变回来了, 于是怀疑是输入框组件有做 mutationObers…...
【前端 10】初探BOM
初探BOM:浏览器对象模型 在JavaScript的广阔世界中,BOM(Browser Object Model,浏览器对象模型)扮演着举足轻重的角色。它为我们提供了一套操作浏览器窗口及其组成部分的接口,让我们能够通过编写JavaScript…...
PostgreSQL入门与进阶学习,体系化的SQL知识,完成终极目标高可用与容灾,性能优化与架构设计,以及安全策略
专栏内容: postgresql使用入门基础手写数据库toadb并发编程 个人主页:我的主页 管理社区:开源数据库 座右铭:天行健,君子以自强不息;地势坤,君子以厚德载物. 文章目录 概述基础篇初级篇进阶篇…...
ODBC+FreeTDS从Linux访问Windows SqlServer数据库
提示 \color{red}{提示} 提示: 《Linux系统上编译安装FreeTDS库文件》中讲述了如何编译FreeTDS源码,并安装。 本文部分内容会在上述文章的基础上深入。 本文内容所使用的环境 Windows系统:Windows 10 企业版 64位操作系统;IP&a…...
Chainlit一个快速构建成式AI应用的Python框架,无缝集成与多平台部署
概述 Chainlit 是一个开源 Python 包,用于构建和部署生成式 AI 应用的开源框架。它提供了一种简单的方法来创建交互式的用户界面,这些界面可以与 LLM(大型语言模型)驱动的应用程序进行通信。Chainlit 旨在帮助开发者快速构建基于…...
leetcode日记(51)不同路径Ⅱ
和上一道题(无障碍物的最短路径)很像,但事实上比上一题多了优化方法 根据上一题改的代码如下,添加了对障碍物的判定,如果有障碍物则将数组值设为0。 class Solution { public:int uniquePathsWithObstacles(vector&l…...
图解分布式事务中的2PC与Seata方案
文章目录 文章导图什么是2PC解决传统2PC方案XA方案DTP模型举例:新用户注册送积分总结: Seata方案设计思想执行流程举例:新用户注册送积分 Seata实现2PC事务(AT模式)前提整体机制写隔离读隔离实际案例理解要点说明核心代…...
数据结构(Java):Map集合Set集合哈希表
目录 1、介绍 1.1 Map和Set 1.2 模型 2、Map集合 2.1 Map集合说明 2.2 Map.Entry<K,V> 2.3 Map常用方法 2.4 Map注意事项及实现类 3、Set集合 3.1 Set集合说明 3.2 Set常用方法 3.3 Set注意事项及其实现类 4、TreeMap&TreeSet 4.1 集合类TreeM…...
后进先出(LIFO)详解
LIFO 是 Last In, First Out 的缩写,中文译为后进先出。这是一种数据结构的工作原则,类似于一摞盘子或一叠书本: 最后放进去的元素最先出来 -想象往筒状容器里放盘子: (1)你放进的最后一个盘子(…...
【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器
一.自适应梯度算法Adagrad概述 Adagrad(Adaptive Gradient Algorithm)是一种自适应学习率的优化算法,由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率,适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...
R语言AI模型部署方案:精准离线运行详解
R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...
(二)TensorRT-LLM | 模型导出(v0.20.0rc3)
0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述,后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作,其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...
五年级数学知识边界总结思考-下册
目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解:由来、作用与意义**一、知识点核心内容****二、知识点的由来:从生活实践到数学抽象****三、知识的作用:解决实际问题的工具****四、学习的意义:培养核心素养…...
对WWDC 2025 Keynote 内容的预测
借助我们以往对苹果公司发展路径的深入研究经验,以及大语言模型的分析能力,我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际,我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测,聊作存档。等到明…...
css的定位(position)详解:相对定位 绝对定位 固定定位
在 CSS 中,元素的定位通过 position 属性控制,共有 5 种定位模式:static(静态定位)、relative(相对定位)、absolute(绝对定位)、fixed(固定定位)和…...
Typeerror: cannot read properties of undefined (reading ‘XXX‘)
最近需要在离线机器上运行软件,所以得把软件用docker打包起来,大部分功能都没问题,出了一个奇怪的事情。同样的代码,在本机上用vscode可以运行起来,但是打包之后在docker里出现了问题。使用的是dialog组件,…...
Linux 内存管理实战精讲:核心原理与面试常考点全解析
Linux 内存管理实战精讲:核心原理与面试常考点全解析 Linux 内核内存管理是系统设计中最复杂但也最核心的模块之一。它不仅支撑着虚拟内存机制、物理内存分配、进程隔离与资源复用,还直接决定系统运行的性能与稳定性。无论你是嵌入式开发者、内核调试工…...
动态 Web 开发技术入门篇
一、HTTP 协议核心 1.1 HTTP 基础 协议全称 :HyperText Transfer Protocol(超文本传输协议) 默认端口 :HTTP 使用 80 端口,HTTPS 使用 443 端口。 请求方法 : GET :用于获取资源,…...
