一、字符串的定义
-
1.1、字符串 就是 一串字符,是编程语言中 表示文本的数据类型
-
1.2、在 Python 中可以使用一对双引号
"
或者一对单引号'
定义一个字符串(推荐使用双引号"
,因为绝大多数的语言字符串都是用双引号)- 如果字符串内部需要使用
"
,可以使用'
定义字符串 - 如果字符串内部需要使用
'
,可以使用"
定义字符串
- 如果字符串内部需要使用
-
1.3、 可以使用 索引 获取一个字符串 中 指定位置的字符,索引的计数从 0 开始
string = "hello Python" print(string[1])
-
1.4、也可以使用
for
循环遍历 字符串中每一个字符string = "hello Python" for c in string: print(c)
二、字符串的常用操作
-
2.1、统计字符串的长度
string = "hello Python" print(len(string)) 打印结果是:12
-
2.2、统计一个字符或者字符串在另外一个字符串里面出现的次数
string = "hello Python" print(string.count("o")) 打印结果是:2
-
2.3、某一个子字符串在大字符串中第一次出现的索引,如果在另外一个字符串(大字符串)里面不存在就会报错
string = "hello Python" print(string.index("P")) 打印结果是:6 print(string.index("p")) # 报错
三、字符串的方法分类
-
3.1、判断类型(9个)
方法 说明 string.isspace() 如果 string 中只包含空字符串(\t、\r、\n),则返回 True string.isalnum() 如果 string 至少有一个字符并且所有字符都是字母或数字则返回 True string.isalpha() 如果string 至少有一个字符并且所有字符都是字母则返回True string.isdecimal() 如果string 只包含数字则返回 true,全角数字(也就是阿拉伯数字:1234) string.isdigit() 如果 string 只包含数字则返回True,(1),\u00b2 string.isnumeric() 如果string 只包含数字则返回True,全角数字,汉字数字 string.istitle() 如果 string 是标题华的(每个单词的首字母大写)则返回 True string.islower() 如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是 小写
,则返回Truestring.isupper() 如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是 大写
,则返回True-
简单举例(1): 判断string 中只包含空字符串,
(\t: 垂直对齐、\r: 回车、\n: 换行)也是空字符
stringSpace = " \t" print(stringSpace.isspace()) 打印结果是 True
-
简单举例(2): 判断string 至少有一个字符并且所有字符都是字母或数字则返回 True
string = "123,PPP" print(string.isspace()) 打印结果是 False
-
简单举例(3): 判断数字的三个方法:
string.isdecimal()
,string.isdigit()
,string.isnumeric()
,判断的范围是逐渐扩大-
第一点:三个方法都不可以判断小数
number_str = "1.3" print(number_str.isdecimal()) print(number_str.isdigit()) print(number_str.isnumeric()) 打印结果是: False False False
-
第二点:isdecimal()只可以判断全角数字,也就是只能判断阿拉伯数字:1234567......
-
第三点:isdigit()在isdecimal()的基础上还可以判断 unicode 字符串
-
第四点:isnumeric()在isdigit()的基础上还可以判断 中文字符,如: 一二三四百千万
-
-
-
3.2、查找和替换(7个)
方法 说明 string.startswith(str) 检查字符串是否是以 str
开头,是则返回 Truestring.endswith(str) 检查字符串是否是以 str
结束,是则返回 Truestring.find(str,start=0,end=len(string)) 检测 str 是否包含在 string 中,如果是 start 和 end 指定范围,则检查是否包含在指定范围内,如果是返回开始的索引值,否则返回 -1
string.rfind(str,start=0,end=len(string)) 类似于 find() 函数,不过是从右边开始查找 string.index(str,start=0,end=len(string)) 跟 find() 方法类似,不过如果 str 不在 string 会报错 string.rindex(str,start=0,end=len(string)) 类似于 index() 函数,不过是从右边开始 string.replace(old_str,new_str=0,num=string.count(old)) 把string 中的old_str 替换成 new_str,如果 num 指定,则替换不超过 num 次 -
简单举例(1): 检查字符串是否是以 str开头,是则返回 True
string= "str I Love You !" print(string.startswith("str")) 打印结果是: True
-
-
3.3、大小写转换(5个)
方法 说明 string.capitalize() 把字符串的第一个字符大写 string.title() 把字符串的每个单词首字母大写 string.lower() 转换 string 中 所有大写字符为小写 string.upper() 转换 string 中 所有小写字母为大写 string.swapcase() 翻转 string 中的大小写 -
简单举例(1): 把字符串的每个单词首字母大写(
每个单词之间有空格才代表一个单词
)string = "str i love you !" print(string.title()) 打印结果是: Str I Love You !
-
-
3.4、文本对齐(3个),记得输入一个字符串的宽度
方法 说明 string.ljust( width
)返回一个字符串左对齐,并使用空格填充至长度 width 的新字符串 string.rjust( width
)返回一个字符串右对齐,并使用空格填充至长度 width 的新字符串 string.center( width
)返回一个字符串居中,并使用空格填充至长度 width 的新字符串 -
简单举例(1):返回一个字符串居中,并使用空格填充至长度 width 的新字符串
string = " str i love you !I want to play " print(string.center(10)) # 如果想要英文也对齐,那么就要增加 中文空格: # print(string.center(10," ")) 打印结果是: str i love you !I want to play
-
-
3.5、去除空白字符(3个)
方法 说明 string.lstrip() 截掉 string 左边 (开始) 的空白字符 string.rstrip() 截掉 string 右边 (末尾) 的空白字符 string.strip() 截掉 string 左右两边的空白字符 -
3.6、拆分和连接(5个)
方法 说明 string.partition(str) 把字符串 string 分成一个 3 元素的元组(str前面,str,str后面) 返回值是:元组
string.rpartition(str) 类似于 partition() 函数,不过是从右边开始查找 返回值是:元组
string.split(str,num) 以 str 为分隔符切片string ,如果 num 有指定值,则仅分割 num + 1
个字符串,str 默认包含\r
,\t
,\n
和 空格,返回值是列表
string.splitlines() 按照行( \r
,\t
,\n
)分割,返回一个包含各行作为元素的列表string.join(seq) 以string 作为 分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串 -
简单举例(1):以 str 为分隔符切片string ,如果 num 有指定值,则仅分割
num + 1
个字符串,str 默认包含\r
,\t
,\n
和 空格,返回值是列表
string = "str i love you y!I want to play" print(string.split("y",1)) # 代表分割成的列表是 `2+1` 个元素 打印结果是: ['str i love ', 'ou y!I want to play'] print(string.split("y",2)) # 代表分割成的列表是 `2+1` 个元素 打印结果是: ['str i love ', 'ou ', '!I want to play']
-
四、字符串的切片
-
4.1、 切片 方法 适用于 字符串、列表、元组
- 切片 使用 索引值 来限定范围,从一个大的 字符串 中 切出 小的 字符串
- 列表 和 元组 都是 有序 的集合,都能够 通过索引值 获取到对应的数据
-
字典 是一个 无序的集合,是使用 键值对 保存数据
切片图
字符串[开始索引:结束索引:步长]
- 注意:
- 指定区间属于 左闭右开型 :从
起始
位开始,到结束
位的前一位 结束 (不包含结束位本身) - 从头开始,开始索引 数字可以省略,冒号不能省略
- 到末尾结束,结束索引 数字可以省略,冒号不能省略
- 步长默认为
1
,如果连续切片,数字和冒号都可以省略
- 指定区间属于 左闭右开型 :从
-
4.2、看下面的几个例子练习
最初的字符串都是string = "Hi boy,I Love You"
-
截取从 2~5 位置的字符串(因为是右边是开区间,所以要写到第6位)
print(string[2:6]) # 因为步长为 1,后面的 :1 可以省略
-
截取从 2~末尾 的字符串
print(string[2:])
-
截取从 开始~5 位置的字符串
print(string[0:6])
-
截取完整的字符串
print(string[:])
-
从开始位置,每隔一个字符串截取字符串( 步长一看就是 2)
print(string[::2])
-
从索引 1 开始,每隔一个取一个
print(string[1::2])
-
截取从 2~末尾-1 的字符串
print(string[2:-1])
-
截取字符串末尾两个字符
print(string[-2:]) # 因为步长为 1,后面的 :1 可以省略
-
字符串的逆序
print(string[::-1]) print(string[-1::-1])
-
网友评论