前言声明: 近期学习python技能树,学习到了关于字符串的许多方法,有的方法自己用的比较多,但是有的自己以前都没有用过,技能树不方便记录,想着方便查找,在这里做一笔记,作为归纳总结。
CSDN技能树原文地址:https://edu.csdn.net/skill/python/python-3-22?category=3
语法位置参数说明:string表示预处理字符串,[ ]表示为可选值,value表示必选值
1、string.find()
检测字符串是否包含特定字符,如果包含,则返回开始的索引;否则,返回-1
str = 'hello world'
# 'wo'在字符串中
print( str.find('wo') ) #得到下标6
# 'wc'不在字符串中
print( str.find('wc') ) #没找到,返回-1
2、string.index()
检测字符串是否包含指定字符,如果包含,则返回开始的索引值;否则,抛出异常,可以通过try ——except捕获异常对字符做出相应处理。
str = 'hello world'
# 'wo'在字符串中
print( str.index('wo') ) #得到下标6
# 'wc'不在字符串中
print( str.index('wc') ) #直接返回异常值:ValueError: substring not found
3、string.count(value,[start, end])
检测字符value在字符串string中出现的次数,中括号为可选值,start、end分别表示查找开始的下标和结束的下标,没有value时直接返回异常值
str = 'hello world'
# 'wo'在字符串中
print( str.count('o') ) #2
# 统计str中从第5+1个字母到最后一个字母中,字母l的个数
print( str.count('l', 5, len(str)) )
# 'wc'不在字符串中
print( str.index('python') ) #ValueError: substring not found
string1.replace(string2, [count])
将str1中的str1替换成str2,,count可选,如果指定count,则不超过count次,如果不指定,表示全部替换,可以通过这个方法轻松去掉空格
## replace()函数
print('=*'*10, 'replace()函数', '=*'*10)
str = 'hello world hello world'
str1 = 'world'
str2 = 'waltsmith'
# 将所有的str1替换为str2
print( str.replace(str1, str2) )
# 只将前1个str1替换为str2
print( str.replace(str1, str2, 1) )
## 输出:
## hello waltsmith hello waltsmith
## hello waltsmith hello world
string.split(value,[maxSplitNumber])
表示根据定界符分割所有能分割的;返回值为列表;
maxSplitNumber可选,默认值为-1,,如果 maxSplitNumber有指定值,则仅分割 maxSplitNumber 个子字符串;
string = 'Hello,讷言,你好,丶'
arr = string.split(',')
arr1 = string.split(',',2) #加入可分割的数量
print(arr) #['Hello', '讷言', '你好', '丶']
print(arr1) #['Hello', '讷言', '你好,丶']
string.strip()、string.lstrip()、string.rstrip()
分别表示:去掉字符串左右两边的空白字符;去掉左边空白字符、去掉右边空白字符。也可以传入字符去掉对应的字符,和去掉空格的用法是一致的。默认传入的是空字符。
str13 = " Hello Walt Smith "
strs = str13.strip()
strl = str13.lstrip()
strr = str13.rstrip()
print(strs,len(strs),sep='\n字符串长度:')
print(strl,len(strl),sep='\n字符串长度:')
print(strr,len(strr),sep='\n字符串长度:')
string = '《礼记二则》文言文原文注释翻译'
s = string.strip('文言文原文注释翻译')
print(s)
## 输出:
# Hello Walt Smith
# 字符串长度:16
# Hello Walt Smith
# 字符串长度:19
# Hello Walt Smith
# 字符串长度:19
#《礼记二则》
string.join(iterable)
将iterable中每两个相邻元素中间插入字符串string,返回形成的新的字符串;
## join()函数
str15 = "walt"
print(str15.join("ABC"))
iterable = ['YOU', 'THEY', 'WE']
print(str15.join(iterable))
## 输出:
## AwaltBwaltC
## YOUwaltTHEYwaltWE
1、string.isspace()
如果字符串string中只包含空格,则返回True;否则,返回False;
## isspace()函数
str16 = " t "
print(str16.isspace())
## 输出:
## False
2、string.isdigit()
如果字符串string中只包含数字,则返回True;否则,返回False;
## isspace()函数
str16 = "1111"
print(str16.isspace())
## 输出:
## true
3、string.isalpha()
如果字符串string中只包含字母,则返回True;否则,返回False;
## isspace()函数
str16 = "teaf"
print(str16.isalpha())
## 输出:
## true
1、string.capitalize()
将字符串的首字母大写,其余字母全部小写
## capitalize()函数
str4 = 'I aM waLt smith'
# 字符串的首字母大写,其余字母全部小写
print(str4.capitalize())# I am walt smith
2、string.title()
将字符串中的所有单词的首字母大写,其余字母全部小写;
值得注意的是,这里单词的区分是以任何标点符号区分的,即,标点符号的前后都是一个独立的单词,字符串最后一个标点除外
## title()函数
# 正常字符串的转换
str5 = "I am walt smith!"
print(str5.title())
## 输出:
## I Am Walt Smith!
# 字符中包含标点符号
str6 = "I'm walt-sMith!"
print(str6.title())# I'M Walt-Smith!
3、string.startswith(string1)
检查字符串str是否 以字符串str1开头,若是,则返回True;否则,返回False
## startswith()函数
str8 = "Hello Walt Smith"
print(str8.startswith("Hello"))# True
4、string.lower()
将字符串的所有字母转换为小写
str10 = "Hello Walt Smith"
print(str10.lower())#hello walt smith
5、string.upper()
将字符串的所有字母转换为大写
str10 = "Hello Walt Smith"
print(str10.lower())# HELLO WALT SMITH
6、string.endswith(string1)
检查字符串str是否 以字符串str1结尾,若是,则返回True;否则,返回False
str9 = "Hello Walt Smith"
print(str9.endswith("Smith"))# True
7、string.ljust(value)、string.rjust(value)、string.center(value)
string.ljust(len)将字符串左对齐,string.rjust(len)将字符串右对齐,string.center(len)将字符串居中,并使用空格填充至指定长度len
## ljust()函数
str10 = "Hello Walt Smith"
print("str10的原长度为%d" % (len(str10)))
print("str10处理后的长度为%d" % (len(str10.ljust(20))))
## 输出:
## str10的原长度为16
## str10处理后的长度为20
## rjust()函数
print(str10.rjust(20))
print("str10的原长度为%d" % (len(str10)))
print("str10处理后的长度为%d" % (len(str10.ljust(20))))
## 输出:
## ☐☐☐☐Hello Walt Smith
## str10的原长度为16
## str10处理后的长度为20
## center()函数
print(str10.center(20))
print("st12的原长度为%d" % (len(str10)))
print("str12处理后的长度为%d" % (len(str10.center(20))))
## 输出:
## ☐☐Hello Walt Smith☐☐
## str10的原长度为16
## str10处理后的长度为20
8、string.partition(string1)
根据string中的第一个string1,将字符串string分割为string1之前,string1和string1之后三个部分;若string1不存在,则将string作为第一部分,后面两个元素为空;返回元组;
## partition()函数
str14 = "Are you believe in yourself?"
# "yourself"在字符串中
print(str14.partition("yourself"))
# "you"在字符串中有两个
print(str14.partition("you"))
# "walt"不在字符串中
print(str14.partition("walt"))
## 输出:
## ('Are you believe in ', 'yourself', '?')
## ('Are ', 'you', ' believe in yourself?')
## ('Are you believe in yourself?', '', '')