字符串相关函数
类型 | 语法 | 实例 | 输出 | 备注 |
单词大小写相关 | str.upper() 将字符串内的所有元素变成大写 | test1=‘hello’ print(test1.upper()) | HELLO | |
str.lower() 将字符串内的所有元素变成小写 | test1='HELLO' print(test1.lower()) | hello | ||
str.capitalize() 将字符串的首字母大写 | test1='hello python' print(test1.capitalize()) | Hello python | ||
str.title() 将字符串中的每个单词的首字母大写 | str3='hellop ython lovey ou' print(str3.title()) | Hellop Ython Lovey Ou | *python根据字符串中的空格来判断是否是一个单词 | |
str.swapcase() 将字符串中的大写和小写互换 | str4=‘Hellop Ython Lovey Ou’ print(str4) print(str4.swapcase()) | Hellop Ython Lovey Ou hELLOP yTHON lOVEY oU | ||
统计相关 | str.count(self,x,__start,__end) x:要统计的元素(必传) start:开始查询的索引,默认为None(参考切片) end:结束查询的索引,默认为None(参考切片) 将传入的元素在字符串的指定位置区间内的出现次数统计出来,不传start和end时,默认范围为整个字符串 | str1=‘hello python’ print(str1.count('h')) | 2 | |
str.find(self,sub,__start,__end) sub:要寻找的元素(必传) start:开始查询的索引,默认为None(参考切片) end:结束查询的索引,默认为None(参考切片) 将传入的元素的索引位置返回出,如果传入的元素不存在于该字符串内,则返回-1 | str1=‘hello python’ print(str1.find('h')) | 0 | 1.find函数返回第一个匹配到的元素的索引位置,后面即使还有,也不会返回。 2.rfind函数返回最后一个匹配到的元素的索引位置。 3.find,rfind函数没有找到时会返回-1,index函数没有找到时会报错,所以为了程序可不中断的执行下去,一般会更倾向于用find和rfind。 | |
str.rfind(self,sub,__start,__end) 函数用法及传参方式参考上面的函数,只是 | str1=‘hello python’ print(str1.rfind('h')) | 9 | ||
str.index(self,sub,__start,__end) 函数用法及传参方式参考find,不同点是如果传入的参数不在字符串中时,执行后会报错 | str1=‘hello python’ print(str1.index('h')) | 0 | ||
判断相关 | str.isupper() 判断字符串中所有元素是否都是大写,是则返回true,有一个不是大写也返回false | str1=‘HELLO PYTHON’ str2=‘Hello python’ print(str1.isupper()) print(str2.isupper()) | True False | |
str.islower() 判断字符串中所有元素是否都是大写,是则返回true,有一个不是大写也返回false | str1=‘hello python’ str2=‘HELLO PYTHOn’ print(str1.islower()) print(str2.islower()) | True False | ||
str.isalnum() 判断是否都是字母或者数字,返回布尔值 | str1='python' str2='12345' str3='我不想上班' print(str1.isalnum()) print(str2.isalnum()) print(str1.isalpha()) print(str3.isalpha()) | True True True True | ||
str.isalpha() 判断是否都是字母或者汉字,返回布尔值 | ||||
str.isdiglt() 判断是否都是数字(decimal),返回布尔值 | str2='12345' print(str2.isdigit()) | True | 常用于数据库断言 | |
str.startswith(self,prefix,start,end) prefix:待判断的开始的元素 判断字符串是否以指定的元素开始,返回布尔值 | str1='python' print(str1.startswith('p')) print(str1.startswith('1')) | True False | 接口地址路径拼接时经常会用到 | |
str.istitle() 判断字符串内每个单词首字母是否大写 按照空格来分割成单词 | str1='I hate go to work!' str2='I Hate Go To Work!' print(str1.istitle()) print(str2.istitle()) | False True | ||
str.isspace() 判断字符串是不是只有空格 | str3='' str4=' ' print(str3.isspace()) print(str4.isspace()) | False True | ||
拆分 | str.split(self,sep,maxsplit) sep:拆分标记字符(按照哪个字符拆分),默认是通过空格 maxsplit:拆分次数,默认值为-1(表示不做限制);当传入该参数时,则从左到右拆分传入的相应次数后,停止拆分 将字符串按照指定的字符以及拆分次数拆分后,把结果放在list中返回 | str2='I Hate Go To Work!' print(str2.split(' ',2)) | ['I', 'Hate', 'Go To Work!'] | 返回的结果中会丢弃拆分标记字符 |
str.splitlines(self,keepends) keepends:默认为False,如果设置为True,会保留换行符or回车符 按照换行符,回车符进行拆分字符串 | str.1='hello\npython' str.2='hello\rpython' print(str1.splitlines()) print(str2.spiltlines()) print(str2.spiltlines(keepends=True)) | ['hello','python'] ['hello','python'] ['hello\r','python'] | ||
替换 | str.replace() old:要被替换的字符串 new:替换后的字符串 count:替换次数,默认全部替换;当传入该参数时,则从左到右替换传入的相应次数后,停止替换 将指定的字符串内的元素替换为传入的元素 | str1='python hello' print(str1.replace('python','java')) | java hello | |
字符串连接 | str.join(self,iterable) str1:要连接用的字符串 iterable:可迭代对象,传入要被连接的字符串;如列表,元组等只要是传入可迭代对象即可 | str1='hellopython' print('-'.join(str1)) | h-e-l-l-o-p-y-t-h-o-n | |
去除空格 | str.strip(self,chars) chars:指定要去掉的字符 去掉字符串头尾的空白符(包括’\n’, ‘\r’, ‘\t’, ’ ') | str1='\nI hate go to work! ' str2='I Hate Go To Work!' print(str2.strip('I')) print(str1) print(str1.strip()) | ![]() | 没有空白符,或者没有指定的字符可以去除时,程序也不会报错。 |
str.lstrip(self,chars) chars:指定要去掉的字符 去掉字符串最左边的空白符(包括’\n’, ‘\r’, ‘\t’, ’ ') | - | |||
str.rstrip(self,chars) chars:指定要去掉的字符 去掉字符串最右边的空白符(包括’\n’, ‘\r’, ‘\t’, ’ ') | - | |||
格式化输出 | 使用%占位符的形式 占位符: %s---字符串占位符 %d---数值类型占位符 %f---小数类型占位符,默认保留6位小数 %.2f----取小数点后两位 %.3f----取小数点后三位,以此类推 | name='慧慧' age=25 str1='my name is %s,age is %s'%(name,age) str2='my name is %s,age is %d'%(name,age) str3='my name is %s,age is %f'%(name,age) str4='my name is %s,age is %.2f'%(name,age) print(str1) print(str2) print(str3) print(str4) | my name is 慧慧,age is 25 my name is 慧慧,age is 25 my name is 慧慧,age is 25.000000 my name is 慧慧,age is 25.00 | 1.使用%s占位符,但传入的不是字符串时,python会自动给转换成字符串型 2.%d只支持传入数值类型,如果传入小数,会把小数部位去掉(强制类型转换);如果传入字符串类型,则会报错 |
format方式 占位符:{} 传值方式: (1)位置传值 (2)索引传值 (3)关键字传值 | name='慧慧' age=25 位置传参: str1='my name is {},age is {}'.format(name,age) print(str1) 索引传参: str2='my name is {1},age is {0}'.format(name,age) print(str2) 关键字传参: str3='my name is {name},age is {age}'.format(name=name,age=age) print(str3) | my name is 慧慧,age is 25 my name is 25,age is 慧慧 my name is 慧慧,age is 25 | ||
f表达式 | name='慧慧' age=25 str1=f'my name is {name},age is {age}' print(str1) | my name is 慧慧,age is 25 | ||
字符串倒序 | reversed() 传入需要倒序的字符串,返回的是一个把序列值经过反转之后的迭代器,所以需要通过空字符串join的方法得到倒序后的字符串。 | ss = "qwer1234" print(''.join(reversed(ss))) | 4321rewq | 用[::-1]的方式也可以实现倒序 |