一、字符串的定义
字符串其实就是一个有序的字符序列,顺序不可以改变
字符串定义的分类 | 格式 |
---|---|
单引号 |
变量名 = 'xxx' eg: 空字符串: ''
|
双引号 |
变量名 = "xxx" eg: 空字符串: ""
|
三引号 | 三单引号:变量名 = '''xxx''' 三双引号: 变量名 = """xxx"""" 1. 直接保留文本格式 eg: |
str() |
变量名 = str("xxx") 变量名 = str('xxx') eg: 空字符串: str()
|
- 四种方式的数据都是等价的
- 空字符串即字符串中没有一个字符
1.1 字符串的下标
又称索引或下标索引
- 保证字符串的下标是存在的
- 字符串的下标从左到右依次为0,1,2,...
- 字符串的下标从右到左依次为-1,-2,-3,...
1.2 字符串的切片
又称截取
格式:
[起始:结束]
[起始:结束:步长]
提示:
- 字符串是不可改的(改的是复制版)
- 起始对应的左边是闭区间,起始等于0,可以省略
- 结束对应的右边是开区间
- 步长默认为1
eg:
my_str = 'abcdef'
# abc
# print(my_str[0:3])
print(my_str[:3])
# ace
print(my_str[:5:2])
# bd
print(my_str[1:4:2])
# fdb
print(my_str[-1:-6:-2])
# fd
print(my_str[-1:-4:-2])
二、字符串的常见操作
- 字符串是不可改的,所以新字符串需要额外用变量进行保存
字符串的内置函数 | 描述 |
---|---|
统计 长度与次数 |
|
len() |
格式:my_str.len() 计算my_str字符串的字符长度 |
count() |
格式:my_str.count(str, start=0 , end=len(my_str)) 计算str在my_str字符串中出现的次数 |
查找字符串 | 分左右侧查找是为了提高效率 |
find() |
格式:my_str.find(str, start=0 , end=len(my_str)) 从左到右检测str是否包含在my_str中,如果存在则只返回第一个索引值,否则返回-1 |
rfind() |
格式:my_str.rfind(str, start=-1 , end=len(my_str)) 同 find() ,不过是从右边开始查找,返回的索引值依然是从左到右开始计算得到的 |
index() |
格式:my_str.index(str, start=0 , end=len(my_str)) 从左到右检测str是否包含在my_str中,如果存在则只返回第一个索引值,否则报一个异常 eg: 为避免异常,可以用cout()来先判断str出现次数是否大于0,大于0才用index() |
rindex() |
格式:my_str.rindex(str, start=-1 , end=len(my_str)) 同 index() ,不过是从右边开始查找,返回的索引值依然是从左到右开始计算得到的 |
替换 | |
replace() |
格式:my_str.replace(str1, str2 , my_str.count(str1)) 把my_str字符串中str1替换成str2且替换次数不超过cout()得到的次数 |
分割 | 分割得列表或元组 |
split() |
格式:my_str.split(str=" ", maxsplit) 以str为分隔符切片my_str字符串,如果maxsplit有指定值,则仅分割maxsplit个字符串,返回一个列表 |
splitlines() |
格式:my_str.splitlines(keepends=False) 按照行分割,返回一个包含各行作为元素的列表 eg: Flase表示删除\n,默认 |
partition() |
格式:my_str.partition(str) 分割my_str成三部分,str前、str、str后,返回一个元组 |
rpartition() |
格式:my_str.rpartition(str) 分割my_str成三部分,str前、str、str后,返回一个元组 |
首字母大写 | |
capitalize() |
格式:my_str.capitalize() 把my_str字符串中的第一个字符大写 |
title() |
格式:my_str.title() 把my_str字符串中的每个单词(空格分隔)的首字母大写 |
检查 开头和结尾 |
|
startswith() |
格式:my_str.startswith(str) 检查my_str是否以str开头,是返回True,否则返回False |
endswith() |
格式:my_str.endswith(str) 检查my_str是否以str结尾,是返回True,否则返回False eg: 可以用于检查后缀名 |
大小写转换 | 可用于验证码的验证中 |
lower() |
格式:my_str.lower() 转换my_str中所有大写字符为小写 |
upper() |
格式:my_str.upper() 转换my_str中所有小写字符为大写 |
填充对齐 | |
ljust() |
格式:my_str.ljust(width, fillchar=" ") 返回一个使用空格填充至长度width的左对齐的新字符串 |
rjust() |
格式:my_str.rjust(width, fillchar=" ") 返回一个使用空格填充至长度width的右对齐的新字符串 |
center() |
格式:my_str.center(width, fillchar=" ") 返回一个使用空格填充至长度width的居中对齐的新字符串 eg: 不对称时,右边填充个数 > 左边填充个数 |
删除端字符 | 空白字符包括空格、\n、\t |
lstrip() |
格式:my_str.lstrip(chars=" ") 删除my_str左端的空白字符 |
rstrip() |
格式:my_str.rstrip(chars=" ") 删除my_str右端的空白字符 |
strip() |
格式:my_str.strip(chars=" ") 删除my_str两端的空白字符 eg: my_str.strip("23")
|
判断 字符串组成 |
字母、数字、空格 |
isalpha() |
格式:my_str.isalpha() 判断my_str所有字符是否都是字母,如果是返回True,否则返回False |
isdigit() |
格式:my_str.isdigit() 判断my_str是否只包含数字,如果是返回True,否则返回False |
isalnum() |
格式:my_str.isalnum() 判断my_str所有字符全是字母或数字,如果是返回True,否则返回False |
isspace() |
格式:my_str.isspace() 判断my_str是否只包含空格,如果是返回True,否则返回False |
列表 插入字符串 |
|
join() |
格式:str.join(my_list) my_list中每个元素后面都插入str,构造出一个新的字符串 |
eg:
- 得到abcd
- 替换
my_str = ' a b c d'
# abcd
res = my_str.replace(" ", "")
print(res)
- 分割加插入
my_str = ' a b c d'
# abcd
my_list = my_str.split()
res = ''.join(my_list)
print(res)
更新中......