一、字符串的操作符
upper() | 将字符串进行大写 |
---|---|
lower() | 将字符串进行小写 |
swapcase() | 将字符串中的大小写相互转换 |
title() | 将字符串中的单词首字母进行大写,其余字母小写,用空格来区分单词 |
capitalize() | 将字符串中的单词首字母进行大写,其余字母小写 |
len() | 获取字符串的长度 |
# 4、字符串的操作
# a = 'hello121f'
lo = 'AFAFAF11231D哈哈'
up = 'AFG1134af子框'
# 字符转换操作
# 1)、upper() 将字符串进行大写
print(up.upper()) # 输出:AFG1134AF子框
# 2)、lower() 将字符串进行小写
print(lo.lower()) # 输出:afafaf11231d哈哈 支持英文字母
print(lo.casefold()) # 输出:afafaf11231d哈哈 # 支持所有语言
# 3)、swapcase() 将字符串中的大小写相互转换
print(up.swapcase()) # 输出:afg1134AF子框
# 4)、title() 将字符串中的单词首字母进行大写,其余字母小写,用空格来区分单词
mo = "dfhaFF dFFFFD afad"
print(mo.title()) # 输出:Dfhaff Dffffd Afad
# 5)、capitalize() 将字符串中的单词首字母进行大写,其余字母小写
print(mo.capitalize()) # 输出:Dfhaff dffffd afad
# 6)、len() 获取字符串的长度
print(len(mo)) # 输出:18
islower() | 判断字符串是否全部是有小写字母组成 |
isupper() | 判断字符串是否全部是大写字母组成 |
isdigit() | 判断字符串是否是由纯字母组成 |
isalpha() | 判断字符串是否由纯字母组成 |
isalnum() | 判断字符串是否由数字和字母组成 |
istitle() | 判断字符串是否满足单词首字母大写 |
startswith(str) | 判断字符串是否以括号内的字符串为开头 |
endswith(str) | 判断字符串是否以括号内的字符串为结尾 |
# 状态获取
mo = "dfhaFF dFFFFD afad"
# 它返回的是布尔类型:False 或 True
# 1)、islower() 判断字符串是否全部是有小写字母组成
print(mo.islower()) # 输出:False
# 2)、isupper() 判断字符串是否全部是大写字母组成
print(mo.isupper()) # 输出:False
# 3)、isdigit() 判断字符串是否是由纯字母组成
num = '121212'
nums = 'sfsa11313'
number = 'fafafdsafd'
print(num.isdigit()) # 输出:True
print(nums.isdigit()) # 输出:False
# 4)、isalpha() 判断字符串是否由纯字母组成
print(num.isalpha()) # 输出:False
print(number.isalpha()) # 输出:True
# 5)、isalnum() 判断字符串是否由数字和字母组成
print(num.isalnum()) # 输出:True
print(nums.isalnum()) # 输出:True
print(number.isalnum()) # 输出:True
# 6)、istitle() 判断字符串是否满足单词首字母大写
# 当非首字母部分出现大写或出现其他非字母的字符,返回False
stt = 'Faq Sx'
print(num.istitle()) # 输出:False
print(stt.istitle()) # 输出:True
# 7)、startswith(str) 判断字符串是否以括号内的字符串为开头
print(stt.startswith('F')) # 输出:True
# 8)、endswith(str) 判断字符串是否以括号内的字符串为结尾
print(stt.endswith('x')) # 输出:True
strip(str) | 去掉字符串首位指定的字符或序列 |
lstrip(str) | 去掉字符串左侧指定的字符 |
rstrip(str) | 去掉字符串右侧指定的字符 |
ljust(len,str) | 使用指定的字符串在字符串的右侧补充到指定的长度 |
rjust(len,str) | 使用指定的字符串在字符串的左侧补充到指定的长度 |
center(len,str) | 使用指定的字符串在字符串的左右两侧补充到指定的长度 |
zfill(len) | 使用0字符在字符串的左侧补充到指定的长度 |
# 格式转换操作
# 1)、strip(str) 去掉字符串首位指定的字符或序列
# 该方法只能删除开头和结尾的字符,中间的字符不能删除
str_1 = '000010001does 000 batting1001000'
str_2 = ' does 000 batting '
print(str_1.strip('0')) # 输出 does 000 batting
print(str_2.strip()) # 输出 does 000 batting 不填默认删除空格
# 删除序列,不用考虑序列中字符在字符串中的顺序,但字符必须是字符串的手尾位置
print(str_1.strip('0g1')) # does 000 battin
# 2)、lstrip(str) 去掉字符串左侧指定的字符
print(str_1.lstrip('10')) # 输出:does 000 batting1001000
# 3)、rstrip(str) 去掉字符串右侧指定的字符
print(str_1.rstrip('10')) # 输出:000010001does 000 batting
# 4)、ljust(len,str) 使用指定的字符串在字符串的右侧补充到指定的长度
str_3 = 'dong'
print(str_3.ljust(9, '8')) # 输出:dong88888
# 5)、rjust(len,str) 使用指定的字符串在字符串的左侧补充到指定的长度
print(str_3.rjust(9, '8')) # 输出:88888dong
# 6)、center(len,str) 使用指定的字符串在字符串的左右两侧补充到指定的长度
print(str_3.center(16, '9')) # 输出:999999dong999999
# 7)、zfill(len) 使用0字符在字符串的左侧补充到指定的长度
print(str_3.zfill(9)) # 输出:00000dong
partition(str) | 从字符串左侧开始查找,将参数左侧、参数、参数右侧三个字符串元组形式返回 |
rpartition(str) | 从字符串右侧开始查找,将参数左侧、参数、参数右侧三个字符串元组形式返回 |
split() | 使用参数作为分割线,将字符串分成若干个字符串,并以列表形式返回 |
splitlines() | 以换行符作为分割线,将字符串分成若干个字符串,并以列表形式返回 |
# 拆分操作
# 1)、partition(str) 从字符串左侧开始查找,将参数左侧、参数、参数右侧三个字符串元组形式返回
str_4 = 'chaiFen'
print(str_4.partition('i'))
# 2)、rpartition(str) 从字符串右侧开始查找,将参数左侧、参数、参数右侧三个字符串元组形式返回
print(str_4.rpartition('F'))
# 3)、split() 使用参数作为分割线,将字符串分成若干个字符串,并以列表形式返回
str_5 = 'shipping'
print(str_5.split('i'))
# 4)、splitlines() 以换行符作为分割线,将字符串分成若干个字符串,并以列表形式返回
str_6 = 'hello\nitcast\npython'
print(str_6.splitlines())
"原始字符串".jion(str) | 将原始字符串填充到参数中的每个字符之间 |
str1 + str2 | 将两个字符串按顺序拼接 |
# 连接操作
# 1)、"原始字符串".jion(str) 将原始字符串填充到参数中的每个字符之间
print('7'.join(str_5))
# 2)、str1 + str2 将两个字符串按顺序拼接
print(str_5 + " " + str_4)
find(str, begin, end) | 从字符串左侧开始,以指定的位置开始,到指定的位置结束,返回第一次出现索引的位置 |
rfind(str, begin, end) | 从字符串右侧开始,以指定的位置开始,到指定的位置结束,返回第一次出现索引的位置 |
index(str, begin, end) | 从字符串左侧开始,以指定的位置开始,到指定的位置结束,返回第一次出现索引的位置 |
rindex(str, begin, end) | 从字符串右侧开始,以指定的位置开始,到指定的位置结束,返回第一次出现索引的位置 |
count(str) | 查询参数在字符串中出现的次数 |
# 查询操作
# 1)、find(str, begin, end) 从字符串左侧开始,以指定的位置开始,到指定的位置结束,返回第一次出现索引的位置
# 查到就返回该位置的下标,没找到返回-1
str_7 = 'hello, you need a book'
print(str_7.find("e", 2, 16))
# 2)、rfind(str, begin, end) 从字符串右侧开始,以指定的位置开始,到指定的位置结束,返回第一次出现索引的位置
print(str_7.rfind("e", 2, 19))
# 3)、index(str, begin, end) 从字符串左侧开始,以指定的位置开始,到指定的位置结束,返回第一次出现索引的位置
# 查到就返回该位置的下标,没找到就报错
print(str_7.index("e", 2, 18))
# 4)、rindex(str, begin, end) 从字符串右侧开始,以指定的位置开始,到指定的位置结束,返回第一次出现索引的位置
print(str_7.rindex("e", 2, 19))
# 5)、count(str) 查询参数在字符串中出现的次数
print(str_7.count('e'))
replace(old_str, new_str, num) | 使用新字符串替换旧的字符串,num是替换数量 |
expandtabs() | 使用空格替换字符串中的制表为\t |
maketrans(str1,str2) | 使用两个等长的字符串中的每个对应位置的字符生成一个字典对象 |
translate (dict) | 使用字典对字符串信息进行转换 |
# 替换操作
# 1)、replace(old_str, new_str, num) 使用新字符串替换旧的字符串,num是替换数量
print(str_7.replace('e', '4', 1)) # 输出: h4llo, you need a book
# 2)、expandtabs() 使用空格替换字符串中的制表为\t
# 其他操作,
# 1)、maketrans(str1,str3) 两个等长的字符串中每个对应的位置的字符相互对调 str1是需要转换的字符,
# str2是转换的目标字符组成的字符串
# str_7 = 'hello, you need a book'
test = str.maketrans('ned', '418') # 建立一个映射表,将str1和str2生成一个由Unicode编码翻译后的字典,
# key就是str1,value是str2,str1和str2长度要相等
print(test) # 输出:{110: 52, 21495: 49, 100: 56}
# translate(dict) 使用dict作为翻译表,来进行对字符串进行修改
# 字符串的translate方法只接受一个参数,而bytes的translate方法是可以接收两个参数,而且第二个参数可以快速实现删除方法
print(str_7.translate(test)) # 输出:hello, you 41e8 a book