字符串
1.概念
- 双引号或者单引号中的数据,就是字符串
- 字符串实际上就是字符的数组,所以也支持下标索引。
如有字符串name=‘abcdef’,其在内存中的手机存储为:
2.切片
切片是指对操作的对象截取其中一部分的操作。字符串,列表,元组都支持切片操作
语法:[起始:结束:步长]
选取的区间属于左闭右开型,即从“起始”位开始,到“结束”位的前一位结束(不包含结束位本身)
示例:
name="dengwenxiong"print(name[2:5])#输出"ngw"print(name[2:])#输出从下标为2开始到最后一个字符,即"ngwenxiong"print(name[2:-1])#输出从下标为2开始到倒数第二个字符结束,即"ngwenxion"print(name[:3])#默认3为结束位,因此输出"den"print(name[::2])#2为步长,输出为"dnwnin"print(name[1:5:2])#输出"eg"print(name[::-2])#输出"goxege"
3.字符串常见操作
1).find:检测 str 是否包含在 mystr中,如果是返回开始的索引值,否则返回-1
mystr.find(str, start=0, end=len(mystr))
name="dengwenxiong"print(name.find("xion"))#输出7print(name.find("xion",1,6))#输出-1
2).index:和find()方法一样,只不过如果str不在mystr中会报一个异常
3).count:返回str在start和end之间 在 mystr里面出现的次数
mystr.count(str, start=0, end=len(mystr))
name="dengwenxiong"print(name.count("e"))#输出2
4).replace:把 mystr 中的 str1 替换成 str2,如果 count 指定,则替换不超过 count 次
mystr.replace(str1, str2, mystr.count(str1))
name="hello hello hello"print(name.replace("hello","HELLO"))#输出"HELLO HELLO HELLO"print(name.replace("hello","HELLO",2))输出"HELLO HELLO hello"
5).split:以 str 为分隔符切片 mystr,如果 maxsplit有指定值,则仅分隔 maxsplit 个子字符串
mystr.split(str=" ",maxsplit)
name="hello hello hello"print(name.split(" ",1))#输出['hello', 'hello hello']
6).capitalize:把字符串的第一个字符大写
mystr.capitalize()
name="hello hello hello"print(name.capitalize())#输出"Hello hello hello"
7).title:把字符串的每个单词首字母大写
name="hello hello hello"print(name.title())#输出"Hello Hello Hello"
8).startswith:检查字符串是否是以 obj 开头, 是则返回 True,否则返回 False
mystr.startswith(obj)
name="hello hello hello"print(name.startswith("hel"))#输出True
9).endswith:检查字符串是否以obj结束,如果是返回True,否则返回 False.
mystr.endswith(obj)
10).lower:转换mystr中所有大写字符为小写
mystr.lower()
name="HEllo hELlo"print(name.lower())#输出"hello hello"
11).upper:转换mystr中所有小写字母为大写
mystr.upper()
name="HEllo hELlo"print(name.upper())#输出"HELLO HELLO"
12).ljust:返回一个原字符串左对齐,并使用空格填充至长度 width 的新字符串
mystr.ljust(width)
13).rjust:返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串
14).center:返回一个原字符串居中,并使用空格填充至长度 width 的新字符串
15).lstrip:删除mystr左边的空白字符
mystr.lstrip()
name=" my "print(name.lstrip())#输出"my "
16).rstrip:删除 mystr 字符串末尾的空白字符
mystr.rstrip()
17).strip:删除mystr字符串两端的空白字符
18).rfind:类似于 find()函数,不过是从右边开始查找.
19).rindex:类似于 index(),不过是从右边开始
20).partition(str):把mystr以str分割成三部分,str前,str和str后
mystr.partition(str)
name="hello ,hao are you"print(name.partition("hao"))#输出('hello ,', 'hao', ' are you')
21).rpartition:类似于 partition()函数,不过是从右边开始.
22).splitlines:按照行分隔,返回一个包含各行作为元素的列表
mystr.splitlines()
name="hello\nhao are you?"print(name.splitlines())#输出['hello', 'hao are you?']
23).isalpha:如果 mystr 所有字符都是字母 则返回 True,否则返回 False
mystr.isalpha()
24).isdigit:如果 mystr 只包含数字则返回 True 否则返回 False.
25).isalnum:如果 mystr 所有字符都是字母或数字则返回 True,否则返回 False
26).isspace:如果 mystr 中只包含空格,则返回 True,否则返回 False.
27).join:mystr 中每个字符后面插入str,构造出一个新的字符串