python字符操作超全总结
2024-09-06 04:18:19
在python中,字符串是数据类型之一,属于不可变序列。
- 转义字符的使用
转义字符是指使用反斜杠"\"对一些特殊字符进行转义。几个常用的转义字符如下:
\ —续行
\n —换行符
\0 —空
\t —制表符
\" —双引号
\\—反斜杠
注:在字符串前加r将会变为原始字符串。在原始字符串中,将按原样输出,而不会对转义字符进行转义
print("Hi, \nlele")
print(r"Hi, \nlele")
输出结果
Hi,
lele
Hi, \nlele
- 字母的大小写转换
char=" heLlo world" ##字符串前有空格
#字母大小写转换
print(char.title()) #title()使每个单词的首字母大写
print(char.upper()) #upper()将字符串改为全部大写
print(char.lower()) #lower()将字符串改为全部小写
输出结果
Hello World
HELLO WORLD
hello world
- 字符串截取
#截取字符串
print(char[2:8:1]) #第一个数字2表示要截取的第1个字符的索引。如果不指定参数,默认从索引0开始。
#第二个数字8表示要截取的最后一个字符的索引(不包括该字符)。如果不指定此参数,默认值为字符串的长度。
#第三个数字1表示切片的步长。如果不指定此参数,默认值为1
print(char[::]) #切片,前闭后开原则
输出结果
eLlo w
heLlo world
- 字符串拼接和分割
#拼接字符串
char0 = "\t你好,世界: " + "hello world\t" + "!\n " #利用制表符或换行符添加空白,并使用+运算符对多个字符串进行拼接,拼接对象只能是字符串
print(char0)
print(str(2023)+char0) #str()将非字符串值表示为字符串
#分割字符串为列表
#split()语法格式:str.split(sep, maxsplit)
#str表示要分割的字符串,
#sep用于指定分隔符,可包含多个字符。默认值为None,即所有空字符(制表符"\t"、空格和换行符"\n")
#maxsplit可选参数,用于指定分割次数,得到的列表元素个数为maxsplit+1
print(char0.split()) #split()以默认值分割字符串
print(char0.split("世界")) #利用多个字符进行分割
print(char0.split("l")) #利用"l"进行分割
print(char0.split(" ", 2))
输出结果
你好,世界: hello world !
2023 你好,世界: hello world !
['你好,世界:', 'hello', 'world', '!']
['\t你好,', ': hello world\t!\n ']
['\t你好,世界: he', '', 'o wor', 'd\t!\n ']
['\t你好,世界:', 'hello', 'world\t!\n ']
- 删除字符串两端的空格和特殊字符
char0 = "\thello world!\n "
print(char0)
char1 = "!. I'm fine!"
print(char1)
#删除字符串两端的空格和特殊字符
##strip()语法格式为:str.strip(chars)
#chars为可选项,用于指定删除的字符。如果不指定此参数,默认删除字符串左右两侧的空格、制表符"\t"、回车符"\r"和换行符"\n"
print(char0.strip())
print(char1.strip("!.")) #删除字符串首尾的"!"或"."
print(char0.rstrip()) #rstrip()删除字符串末尾空白
print(char1.rstrip("!.")) #删除字符串末尾的"!"或"."
print(char0.lstrip()) #lstrip()删除字符串开头空白
print(char1.lstrip("!.")) #删除字符串开头的"!"或"."
输出结果
hello world!
!. I'm fine!
hello world!
I'm fine
hello world!
!. I'm fine
hello world!
I'm fine!
- 统计字符串长度
char2 = "one two的中文意思是1,2!"
#统计字符串长度
print(len(char2)) #默认情况下,len()统计字符串长度,不区分英文、数字和汉字,所有字符都认为占一个字节
print(len(char2.encode())) #计算UTF-8编码的字符串长度。UTF-8编码时,汉字占三个字节
print(len(char2.encode("gbk"))) #计算GBK编码的字符串长度。GBK编码时,汉字占两个字节
输出结果
17
29
23
- 检索字符串(count()/index()/startswith()/endswith()语法类似)
char2 = "one two four的中文意思是1,2,4!"
#count()统计特定字符的出现次数
print(char2.count("o")) #默认情况下检索完整字符串
print(char2.count("o", 0, 6)) #0表示检索的起始位置的索引,6表示检索的结束位置的索引
print(char2.count("o", 0, 7))
#find()检索是否包含指定的字符串。如检索的字符串不存在,则返回-1。否则,返回该字符串首字符的索引
print(char2.find("two")) ##默认情况下检索完整字符串
print(char2.find("two",5,)) #5表示检索的起始位置的索引
#index检索是否包含指定的字符串,与find()类似。不同点是,如检索字符串不存在,则报错
#starstwith()检索字符串是否以特定子字符串开头。如果是,返回Ture,如果不是,返回False
print(char2.startswith("one",0,7))
print(char2.startswith("two",0,7))
#endswith()检索字符串是否以特定子字符串结尾。如果是,返回Ture,如果不是,返回False
输出结果
3
1
2
4
-1
True
False
- 字符串替换
char3 = "hello world"
print(char3.replace("hello", "Hi")) #替换
输出结果
Hi world
最新文章
- git push如何至两个git仓库
- 畅通工程——D
- STM32之PWM波形输出配置总结
- CentOS6.x最下化安装及优化配置
- windows截屏
- CSS精粹之布局技巧
- asp.net输出docx文档出现【文件已损坏 无法打开】问题的解决方案
- 【Android - 框架】之Fresco的使用
- C#反射—解决类的实例化问题
- 数据库分库分表(sharding)系列(三) 关于使用框架还是自主开发以及sharding实现层面的考量
- mysql语句insert后取到返回的主键id
- 开机后Android应用自动启动
- Linux 的相关操作
- 9、js扩展
- vue源码核心部分
- sqlserver数据库查询,在数据类型不一致时容易出错
- Docker Basic
- js混淆加密,通过混淆Js代码让别人(很难)无法还原
- phpize的作用(资料整理)
- nlp 总结 分词,词义消歧,词性标注,命名体识别,依存句法分析,语义角色标注
热门文章
- 2022-04-19内部群每日三题-清辉PMP
- pycharm 2021.3版本无法安装unittest
- 手动导入jar
- ethcat开发记录 一
- if __name__ == '__main__':中的语句无法执行
- springboot修改默认端口
- Arrays.asList()的使用
- Python+Django(4)——创建其他网页(模板继承)
- Flowable 中文文档
- springboot+mybatis+vue