python3基础之字符串
python中有些方法参数中有等号的,参数 可有可没有
def center(self, width, fillchar=None) #类似这样的方法中,当我们调用center方法时,width参数必须填写,fillchar参数可传可不传
#字符串首字母大写方法
test = 'alex' v = test.capitalize() print(v) Alex
#大写变成小写
v1 = test.casefold() #将大写变成小写,可以将其他的语言如法语 等的大写变成小写, v2 = test.lower() #只能将英文字母大写变成小写
# 字符串居中
v3 = test.center(20,'*') # 设置宽度,将字符串居中,两边默认用空格填充,当前用*填充 print(v3) ********aLex********
#统计字符串中指定字符的个数
test = 'aLex' v4 = test.count('a',0,2) # 统计字符串中指定字符串或字符的数量,并指定字符串从索引0开始到索引2的范围 print(v4)
#字符串以什么结尾或开头,返回布尔值
v5 = test.endswith('x',1,2) #以x结尾 指定范围 V6 = test.startswith('a',2,3) # 以a开头 指定范围
#查找子字符串,并返回第一次找到的下标位置
v7 = test.find('ex',3,5) # 从左到右查找ex,找到第一个结束,并返回找到的下标位置值,可指定范围,但是指定范围后返回下标值也是整个字符串对应的下标值,未找到返回-1
vv =test.index('ex',3,5) # 从左到右查找ex,找到第一个结束,并返回找到的下标位置值,可指定范围,但是指定范围后返回下标值也是整个字符串对应的下标值,找不到会报错
# 字符串格式化,将字符串中的占位符{}天换成格式化指定的值
test = ' dadd {a},sdse {b}' #用具体的变量 占位 v8 = test.format(a='dd',b=11) # 指定占位符的值 test1 = ' dadd {0},sdse {1}' #用下标占位获取格式化的值 v9 = test1.format('ss',33)
#format_map中指定的是字典,字符串中的占位符与字典中的key值想对应 test = ' dadd {a},sdse {b}' #用具体的变量 占位 v10 = test.format_map({"a":"nih","b":10})
# 判断字符串中只能出现数字、字母,不能有其他字符,返回布尔值
test = "sdswe111" v11 = test.isalnum() print(v11) true test = "sdswe111!!!" v11 = test.isalnum() print(v11) false
#字符串中\t替换为空格
test = '123456ABC\tabd\t' v12 = test.expandtabs(6) # 字符串从左数如果没有遇上\t则数6个字符为一组,然后继续往下数如果数了3个字符第4个是\t,则3个字符加\t为一组,因为设置了6个字符为一组,所以3个字符加\t满足6个字符\t就会替换为3个空格,以此类推 print(v12)
123456ABC abd
#判断字符串中只包含字母、汉字,返回布尔值
test = "jiad你好" test2 = "jiaee22" v = test.isalpha() v2 = test2.isalpha() print(v) print(v2)
#判断是否只是数字,返回布尔值
test = "1233②" v = test.isdecimal() #判断当前字符串是否包含数字 ,只能判断普通的数字,不能判断特殊的数字② 。。。 v1= test.isdigit() #判断当前字符串是否包含数字 ,可以判断特殊的数字 print(v,v1)
False True
test = "二" v = test.isnumeric() # 除了判断十进制数字和特殊数字之外,还可以判断汉字的数字 print(v) true
# 判断是否为标识符:字母,数字,下划线,并且数字不能开头
test ="_opsde" test1 = "123sdrwe" test2 = "jiang" v = test.isidentifier() v1 = test1.isidentifier() v2 = test2.isidentifier() print(v,v1,v2)
#判断是否存输出时不可见字符,如:\n,\t,\r,如果不存在 true,存在 false
test = 'jiangs\nsdsd' v = test.isprintable() print(v)
false
#判断是否全是空格
test = ' ' v = test.isspace() # 全是空格返回true,否则false print(v)
false
#判断字符串是不是标题,标题的中每个单词的首字母必须大写
test = 'Hello World !' v = test.istitle() print(v)
true
# 将字符串转换为标题,只转换字母
test = 'hello world !'
v = test.title()
print(v)
Hello World !
#将字符串中每个字符使用指定的符号重新拼接成新的字符串 ********
test= '你是风儿我是沙'
tes = "_"
v = tes.join(test) #使用下划线将test字符串中每个字符重新拼接起来
print(v)
你_是_风_儿_我_是_沙
# 指定宽度左右对齐
test = 'ted' v = test.ljust(20,'*') #字符串左对齐,占位20个字符,右边默认使用空格填充,这里使用*号填充 v1 = test.rjust(20,'#') #字符串右对齐,占位20个字符,左边默认使用空格填充,这里使用#号填充 print(v+'\n',v1)
ted*****************
#################ted
# 判断 是都全部为小写
test = 'JDSangd'
v = test.islower() #判断是否全部是小写
v2 = test.lower() #全部转换为小写
v3 = v2.islower()
print(v,v2,v3)
False jdsangd True
# 转换为小写
test = 'SJIISDWE'
v = test.lower()
print(v)
sjiisdwe
# 判断是否全是大写
test = 'SJIISDWE' v = test.isupper() print(v)
true
#全部转换成大写
test ='jiangdee' v = test.upper() print(v) JIANGDEE
#处理字符串前后空格或指定字符
test = 'aeles' v = test.rstrip('eds') #不写参数默认去除右边空格、\n,\r,\t。。。,使用参数则是从右边剔除参数中包含的所有字符,按字符递归去除 v2 = test.lstrip('dds') #不写参数默认去除左边空格、\n,\r,\t。。。,使用参数则是从左边剔除参数中包含的所有字符,按字符递归去除 v3 = test.strip('ase') #不写参数默认去除两边边空格、\n,\r,\t。。。,使用参数则是从两边边剔除参数中包含的所有字符,按字符递归去除 print(v,v2,v3)
# 根据创建的对应关系,替换字符串中的值
test = 'aeiou'
test1 = '12345'
test2 = 'aaabbbeeedddiiioooouuu'
m= str.maketrans(test,test1) # 创建对应关系
v = test2.translate(m) #字符串根据对应关系替换 字符
print(v)
111bbb222ddd3334444555
#字符串分割
test = 'jiangdesjjdfsddessee' v = test.partition('s') #从左边使用指定的字符分割字符串只分割一次,指定的字符串被单独的分割成一个字符串,输出元组 v2 = test.rpartition('ss') # 从右边使用指定的字符分割字符串只分割一次,指定的字符串被单独的分割成一个字符串,输出元组
v3 = test.split('s',1) # 用指定的字符串分割字符串,默认全部分割,也可指定从左分割次数,分割后作为分隔符的字符被去掉 ,输出列表
v4 = test.rsplit('s',2) # 用指定的字符串分割字符串,默认全部分割,也可指定从右分割次数,分割后作为分隔符的字符被去掉 ,输出列表
print(v) print(v2) print(v3) print(v4)
('jiangde', 's', 'jjdfsddessee')
('jiangdesjjdfsdde', 'ss', 'ee')
['jiangde', 'jjdfsddessee']
['jiangdesjjdfsdde', '', 'ee']
#只根据换行符进行分割字符串 ,参数true和false 决定是否保留换行符或回车符
test = 'sdssdd\nsdsdfew\nsdsde\rwwe' v = test.splitlines(True) #只对换行和回车符进行分割 ,True作为参数的时候分割的字符串包含换行符和回车符,False则不包含,默认False print(v) ['sdssdd\n', 'sdsdfew\n', 'sdsde\r', 'wwe']
#字符串以什么什么开否或结尾
test = 'sadrsee' v = test.startswith('s') #是否以s 开头 v1 = test.endswith('e') # 是否以s 结尾 print(v,v1)
# 大小写转换
test= 'jiadSDEFEW' v = test.swapcase() print(v) JIADsdefew
#字符串替换
test = 'jiangdggef' red = test.replace('d','y',1) #替换第一次匹配的结果,2代表替换前两次匹配的结果,默认全部替换 print(red)