- 字符串查找
count | 计数功能,返回自定义字符串 |
---|---|
find | 查找,找到第一个返回 |
rfind | 查找,从左往右查找,返回的索引都是从左往右计算 |
index | 查找,找不到报错 |
rindex | 从左往右查找,返回的索引都是从左往右计算,找不到报错 |
s='hello world python'
ret=s.cpunt('o')
print(ret)
结果:3
num2=s.find('hhh')
print(num2)
结果:-1
num3=s.rfind('o')
print(num3)
结果:16
index=s.index('ll')
print(index)
结果:2
index=s.index('z')
print(index)
结果:找不到报错
2.字符串的拆分
partition | 分割,把mystr以str分割成三部分,str之前为一部分,之后一部分,本身一部分 |
---|---|
splitlines | 按照行分割,返回一个包含行作为各元素的列表 ,按照\n分割 |
keepends=False默认不显示换行符 | |
split | 按照指定内容进行拆分,拆分结果不包含指定内容 |
s='hello world python'
ret=s.partition('world')
print(ret)
结果:('hello','world','python')#返回一个元组类型
ret1=s.splitlines()
print(ret1)
结果:['hello world python']
ret2=s.splitlines(keepends=True)# 返回一个列表类型
print(ret2)
结果:['hello\n','world\n','python']
ret3=s.split('o') #返回一个列表类型
print(ret3)
结果:['hell',' w','rld pyth','n']
- 字符串的替换
replace | 替换,从左到右替换指定元素,可以指定被替换的个数 |
---|---|
translate | 替换,对应关系:一 一对应 |
s='hello world python'
a=s.replace('o','9')#将所有的o全部替换成9,默认是全部替换
print(a)
结果:hell9 w9rld pyth9n
a1=s.replace('o','9',2)#***第三个数是指定呗替换的个数***
print(a1)
结果:hell9 w9rld python
s='hello world'
对应关系:world!------->python
intab='world!'
outab='python'
a2=str.maketrans(intab,outab)
s2=s.tranlate(a2)
print(s2)
结果:hehhy python
- 字符串的修饰
center | 让内容居中显示,其他地方默认显示空格 |
---|---|
ljust | 左对齐,其他空间默认使用空格填充 |
rjust | 右对齐,其他空间默认使用空格填充 |
zfill | 右对齐,其他部分用0填充 |
strip | 默认去除两边的空格,取出内容可以指定 |
rstrip | 去除右边的空格 |
lstrip | 去除左边的空格 |
t=' hello '
ret=t.strip()
print(ret)
结果:hello
format
使用位置参数 | 按位置传递参数,必须一 一对应 |
---|---|
从关键字 | { }中可以写一些变量名称 |
填充与格式化 | :[填充字符] [对齐方式:左对齐 < 、居中^、右对齐 >] [宽度] |
精度与进制 | {:. 2f} 、二进制{:b}八进制{:o}十六进制{:x} |
百分号式格式化 | %s–>字符串、%d–>int整型、%%–>%、%f–>float |
name='zs'
age=10
msg='大家好我叫{},今年年龄{}'
print(msg.format(name,age))
结果:大家好我叫zs,今年年龄10
msg1='大家好我叫{0},我叫{0}今年年龄{1}'
print(msg1.format(name,age))
结果:大家好我叫zs,我叫zs,今年年龄10
msg='大家好,我叫{name},今年年龄{age}'
print(msg.format(name='开心',age='19'))
结果:大家好,我叫开心,今年年龄19
name=js
age=10
msg='大家好,我叫{:@^10},年龄{:*<5}'
print(msg.format(name,age))
结果:大家伙我叫@@@@js@@@@,年龄10***
#{:^10}-->填充内容省略,默认使用空格
msg='长方形的尝试{:.2f},宽舒{:.3f}'
print(msg.format(5/3,9/8))
结果:长方形的长是1.67,宽是1.125
5.字符串的变形
upper | 全部转换成大写 |
---|---|
lower | 全部转换成小写 |
swapcase | 大小写转换 |
title | 首字母大写 |
capitalize | 只有字符串的首字母大写 |
expandtabs | 必须有制表符\t出现 |
空格数=tabsize-前面的数字
s.expandtabs(tabsize=4)–>设定一个制表符\t站空间为4
s='\t abc'
s1=s.expandtabs()
print(s1)
结果: abc
s2=s1.replace(‘ ’,‘@’)
print(s2)
结果:@@@@@@@@abc
- 字符串的判断
结果均为布尔值:True or False
isalnum | 判断字符串是否完全由字母或数字组成 |
---|---|
isalpha | 判断字符串是否完全由字母组成 |
isdigit | 判断字符串是否完全由数字组成 |
isupper | 判断字符串完全由大写字母组成 |
islower | 判断字符串完全由小写字母组成 |
istitle | 判断是否满足title的条件 |
ispace | 判断字符串是否完全由空格组成 |
startwith | 判断字符串的开头字符,也可以截取字符 |
endwith | 判断字符串的结尾字符,也可以截取字符 |
s='hello world '
ret=s.startwith('h')
print(ret)
结果:True
- 字符串编码
1)encode是编码,将字符串----->字节码,str---->byte
2) decode是解码,将字节码---->字符码,byte----->str
s='我'
ret=s.encode()
print(ret)------->xe6\x88\x91
s2=ret.decode()
print(s2)------>'我'
注意:用什么样的编码表就需要使用什么样的编码解码。
9.字符串的拼接:join()
将元素以指定的连接符拼接成一个新的字符串。
S=’hello’
Ret=’_’.join(s)
Print(s)
结果:h_e_l_l_o