一、字符串的定义
-
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、统计一个字符或者字符串在另外一个字符串里面出现的次数.最后,如果你的时间不是很紧张,并且又想快速的python提高,最重要的是不怕吃苦,建议你可以价位♥(同音):762459510 ,那个真的很不错,很多人进步都很快,需要你不怕吃苦哦!大家可以去添加上看一下~
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 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回True string.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(),判断的范围是逐渐扩大.最后,如果你的时间不是很紧张,并且又想快速的python提高,最重要的是不怕吃苦,建议你可以价位♥(同音):762459510 ,那个真的很不错,很多人进步都很快,需要你不怕吃苦哦!大家可以去添加上看一下~
-
第一点:三个方法都不可以判断小数
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开头,是则返回 True string.endswith(str) 检查字符串是否是以 str结束,是则返回 True string.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])
-



