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

python学习记录16

字符串总结

python程序使用unicode编码,中文字符与英文字符都占一个字符,但英文字符只占一个字节,中文字符若按照utf-8格式编码占3个字节。

(1)字符串常用方法

1)大小写转化

string.upper()#将所有字母转换为大写

string.lower()#将所有字母转换为小写

2)字符串分割

string.split(sep='')#将字符串按照sep进行分割

3)字符串的检索

string.count('sub')#统计字符串中某个子串的出现次数

string.find(‘sub’)#查询字符串中是否有查询的子串,有则返回第一次出现子串的索引,没有则返回-1

string.index('sub')#与find类似,区别是若字符串无该子串,则程序报错

4)字符串判断

string.startswith('sub')#判断字符串是否以查询的子串为开头

string.endswith('sub')#判断字符串是否以查询的子串结尾

5)字符串替换

string.replace('sub1','sub2')#将字符串所有子串1替换为子串2

6)字符串显示

string.center(width,'fillchar')#在指定的范围内居中,可指定填充字符,默认为空格

7)字符串拼接

string.join(iterable)#将可迭代的对象组(列表、元组、字符串等)合为一个字符串,其中string为分隔符

8)去除字符串前后字符

string.strip('sub')#去除字符串中头部与尾部指定的字串

string.lstrip('sub')#去除字符串中头部指定的字串

string.rstrip('sub')#去除字符串中尾部指定的字串

(2)格式化字符串

1)使用占位符

"%+型"%(变量名,变量名……)其中()中的变量是一个元组类型的数据

2)f-string

(f'{变量名} {变量名,……}'

3)format

"模板字符串".format(变量,变量……)

(3)字符串编码与解码

1)字符串编码

string.encode(’编码格式‘,’错误处理‘)#编码格式默认utf-8,错误处理包括严格strict(遇到无法编码的字符直接报错)、忽略ignore(遇到无法编码的字符直接跳过)、替换replace(遇到无法编码的字符使用字符替换,默认是’?‘)

2)字符串解码

byte.decode('解码格式',’错误处理‘)#解码格式与编码格式必须一致

(4)数据验证

1)string.isdigit()#判断字符串是否全为阿拉伯数字

2)string.isnumeric()#判断字符串是否全为数字(包括罗马数字、中文的一二三四)

3)string.isalpha()#判断字符串是否全为字母或汉字

4)string.isalnum()#判断字符串是否全为数字或字母(包括中文字符)

5)string.islower()#判断字符串中的字母是否全为小写

6)string.isupper()#判断字符串中的字母是否全为大写

7)string.istitle()#判断字符串中的单词是否全为首字母大写

8)string.isspace()#判断字符串是否都为空白、转义字符\t\n等

(5)字符串去重

有三种方式

1)使用遍历

2)使用索引+遍历

3)使用集合+列表

(6)正则表达式

1)元字符

具有特殊意义的专用字符,例如^和$,用于表达匹配的开始与结束,此外还有:

. :用于匹配任一字符(除\n外)

\w:用于匹配数字、字母、下划线

\W:用于匹配数字、字母、下划线以外的其他字符

\s:用于匹配空白字符

\S:用于匹配空白字符以外的字符

\d:用于匹配任意十进制数

2)限定符

限定符是限定匹配的次数,限定符包括:

? :匹配前面的字符一次或0次

+ :匹配前面的字符一次或多次

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

{n}:匹配前面的字符n次

{n,}:匹配前面的字符至少n次

{n,m}:匹配前面的字符至少n次,至多m次

3)区间字符

可以使用[]匹配[]中的字符,例如[\u4e00-\u9fa5]是匹配任意一个汉字

4)排除字符

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

5)选择字符

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

6)转义字符

\,同转义字符

7)分组

改变限定符的作用

(7)re模块

re模块是python自带模块,无需要下载。模式字符前加r以排除转义字符防止报错。

1)re.match(pattern,string,flags=0)#从字符串开始的位置进行匹配,指match只在字符串的起始位置寻找而不找后面,若在起始位置找到了,结果为Match对象,否则结果为None

2)re.search(pattern,string,flags=0)#在整个字符串中搜索第一个匹配的值,如果匹配成功,则返回结果为match类型的数据,否则为None

3)re.findall(pattern,string,flags=0)#在整个字符串中搜索所有匹配正则表达式的值,结果是一个列表类型的数据

4)re.sub(pattern,repl,string,count,flags=0)#用于对字符串中指定子串的替换

5)re.split(pattern,string,maxsplit,flags=0)#与字符串的split方法功能相同,都是分隔字符串,split最后输出一个列表类型的数据

http://www.lryc.cn/news/483481.html

相关文章:

  • AI 大模型在软件开发中的角色
  • React中类组件和函数组件的理解和区别
  • Day62||prim算法精讲 |kruskal算法精讲
  • upload-labs通关练习
  • wordpress搭建主题可配置json
  • RWKV-5/6 论文被 COLM 2024 收录
  • MinIO分片下载超大文件
  • Vue3 -- 新组件【谁学谁真香系列6】
  • Openstack3--本地仓库搭建(ftp源搭建失败)
  • 【初阶数据结构与算法】链表刷题之移除链表元素、反转链表、找中间节点、合并有序链表、链表的回文结构
  • 【PGCCC】Postgresql Toast 原理
  • vue3使用element-plus,树组件el-tree增加引导线
  • AlphaFold3中文使用说明
  • 使用@react-three/fiber,@mkkellogg/gaussian-splats-3d加载.splat,.ply,.ksplat文件
  • Koa进阶:掌握中间件和参数校验的艺术
  • 开源共建 | 长安链开发常见问题及规避
  • 【网络】深入理解 HTTPS:确保数据传输安全的核心协议
  • C/C++中使用MYSQL
  • 【GD32】(一) 开发方式简介及标准库开发入门
  • 轻松上手:使用Docker部署Java服务
  • wormml_vgg19
  • Rust学习(二):rust基础语法Ⅰ
  • 【WebRTC】视频发送链路中类的简单分析(下)
  • HTML(超文本标记语言)
  • CatBoost中目标变量统计
  • WSL与Ubuntu系统--使用Linux
  • 操作系统离散存储练习题
  • 性能高于Transformer模型1.7-2倍,彩云科技发布基于DCFormer架构通用大模型云锦天章
  • PHP反序列化_3-漏洞利用
  • 2.初始sui move