【python 3】 字符串方法操作汇总

时间:2023-02-12 06:59:30

基础数据类型:str

1.1  字符串大小写转换

  • 所有字母大写 : string.upper()
  • 所有字母小写 : string. lower()
  • 第一个单词的第一个字母大写,其他字母小写 :  string.capitalize()
  • 非字母隔开的部分首字母大写: string. title()
  • 大小写反转 :  string.swapcasw()
 1 s = 'biZZ gates is001number'
3 print(s.upper())
5 print(s.lower())
7 print(s.capitalize())
9 print(s.title())
11 print(s.swapcase()) 运行结果:
BIZZ GATES IS001NUMBER    ###  所有字母大写
bizz gates is001number    ### 所有字母小写
Bizz gates is001number    ### 第一个单词的第一个字母大写
Bizz Gates Is001Number    ### 非字母隔开的部分首字母大写
BIzz GATES IS001NUMBER    ### 大小写反转

1.2  去除空格

  • 去除字符串首尾的空格: string.strip()
  • 去除左边(开头)空格:string.lstrip()
  • 去除右边(结尾)空格:string.rstrip()
  • 去除字符串中间的空格:string.replace(" ","")

  --- 当参数为空时 string.strip()将两端的空白符、\r、\n(换行符)、\t(制表符:相当于tab键,四个空格) 都删除;

   --- 当传入参数后,string.strip()函数会把传入的参数拆解成一个个字符,从头到尾循环直至全部去掉

 

1 s = "  bizz gates is number1    "
2 print(s.strip()) # 删除前后空格
3 print(s.lstrip()) # 删除开头空格
4 print(s.rstrip()) # 删除结尾空格

  运行结果:

1 bizz gates is number1
2 bizz gates is number1
3 bizz gates is number1

  

1 s1 = "bbbccc123dddbbcc"
2 print(s1.strip('bc')) # 删除字母b和c
3 print(s1.lstrip("bc")) # 删除头部的字母b和c
4 print(s1.rstrip("bc")) # 删除结尾的字母b和c

  运行结果:

1 123ddd
2 123dddbbcc
3 bbbccc123ddd

  

1.3  字符串切割(字符串转换列表的方法)

  • string.split()    将字符串切割后返回为一个列表
    • string.spit()               不传入参数,则按照空格去切割,返回列表
    • string.split("m")       按元素m进行切割,返回列表
    • string.split("m",n)    按元素 m 切割 n 次,返回列表  
1 s = "angelababy"
2 print(s.split("a")) # 以元素a对字符串进行切割
3 print(s.split("a",2)) # 以元素a对字符串进行2次切割

运行结果:

['', 'ngel', 'b', 'by']
['', 'ngel', 'baby']

  

1.4 字符串替换

  • string.replace(old,new,count)  
    • string.replace(m,n)             将字符串所有的m都替换成n
    • string.replace(m,n,count)     将old值替换成new值,替换count次
1 s = "angela baby baby"
2 print(s.replace("a","h")) ### 将字符 a 替换成 h
3 print(s.replace("a","h",2))   ### 将前两个字符 a 替换成 h

运行结果:

hngelh bhby bhby
hngelh baby baby

  

1.5  判断字段串组成

  • string.isalnum()  判断字符串是否由字母或数字组成
  • string.isalpha()   判断字符串是否由字母组成
  • string.isdigit()     判断字符串是否由数字组成
  • string.isspace()  判断字符串是否由空格组成

1.6 查询字符串索引

### 通过元素查找字符串索引 :find() 、index()

  注:find() 和 index() 使用方法一样,唯一的区别是 find()找不到返回 -1 ,index()找不到报错。
1 str = "angela baby baby"
2 print(str.find("g")) #查找元素 m 在字符串中的第一个索引
3 print(str.find("a",2,10)) # 在字符串索引为2到10之间找元素 a 的第一个索引值
   # find()方法找不到返回 -1
4 print(str.index("g")) #通过元素m查找索引
5 print(str.index("a",2,10)) #在字符串索引为2到10之间找元素 a 的第一个索引值
   #find()方法找不到就报错 
 
运行结果:

2
5
2
5

1.7 字符串拼接、输出、关键字

### ① 字符串拼接

 print("蜡笔小新",18,"岁")    ## 不同字符类型用逗号(,)拼接
print("蜡笔小新"+"小新蜡笔") ## 同一字符类型用加号(+)拼接

### ② 输出
a = 5
b = 6
## 换行输出
print(a)
print(b)
## 不换行输出
print(a,end=" ")
print(b)
## 换行输出
  print("我要换行啦\n我要换行啦") ### ③ 查看关键字
import keyword
print(keyword.kwlist) 运行结果:
蜡笔小新 18 岁
蜡笔小新小新蜡笔
5
6
5 6
我要换行啦
我要换行啦
['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally',
'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while',
'with', 'yield']

1.8 格式化

###  1) %s  格式化

# 第一种
1 s = "我叫%s,今年%d岁,身高%.2f。"%("佩琪",6,135.565)
2 print(s) # 第二种(使用键值对)
1 s = "我叫%(name)s,今年%(age)d岁,身高%(high).2f。"%{"name" :"佩琪","high" : 135.565,"age" :6}
2 print(s)
### 2) format 格式化(注:若格式化的语句中已存在百分号(%),则加上%进行转义,写法:我的学习进度为80%%)
# 第一种(按顺序替换)
1 s = "我叫{},今年{}岁,身高{}。".format("佩琪","6","135")
2 print(s)
# 第二种(加入角标,可以重复利用)
1 s = "我叫{0},今年{1}岁,身高{2},你也叫{0}".format("佩琪","6","135")
2 print(s)
# 第三种(使用键值对,可以无序)
1 s = "我叫{name},今年{age}岁,身高{high}".format(name = "佩琪",high = 135,age ="6")
2 print(s) 运行结果:

 我叫佩琪,今年6岁,身高135.56。
 我叫佩琪,今年6岁,身高135。
 我叫佩琪,今年6岁,身高135,你也叫佩琪
 我叫佩琪,今年6岁,身高135

1.8 判断以什么开头、计算次数、填充

 ###  判断是否以某个元素开头/结尾  : startswith()  、 endswith()
1 str = "angela baby baby"
2 print(str.startswith("a")) #判断是否以m开头
3 print(str.startswith("m",7,16)) #判断第二个单词是否以m开头
4 print(str.endswith("y")) #判断是否以m结尾
   #返回为bool值 运行结果:

True
  False
  True

### 计算字符出现的次数  : count()
1 str = "angela baby baby"
2 print(str.count("a")) # 查询元素 a 在整个字符串出现的次数
3 print(str.count("a",7,15)) # 查询元素 a 在索引为7~15之间出现的次数 运行结果: 4
2
### 1)填充  : join()

 1 s = 'alexeweuesir'
2 s1 = '_'.join(s)
3 print(s1)

 运行结果:  a_l_e_x_e_w_e_u_e_s_i_r
### 2)填充:center()

1 s = "angle bobyboby"
2 print(s.center(20)) ### 整个字符串为20个字符(未写参数,以空格填充),且字符串居中显示
3 print(s.center(20,"*")) ### 字符串以*填充20个字符,且字符串居中显示 运行结果:

   angle bobyboby 
 ***angle bobyboby***