在字符串对象中,始终需要记住字符串对象的值是无法修改的,所有对字符串对象的操作饭后的都是新建立的字符串,原字符串对象是没有发生任何变化的
str转义
在使用+符合拼接字符串时,如果+其中一侧不是字符串时,则需要通过str函数进行转移
>>> "fsdbo"+12
Traceback (most recent call last):
File "<pyshell#11>", line 1, in <module>
"fsdbo"+12
TypeError: Can't convert 'int' object to str implicitly
>>> "fsdbo"+str(12)
'fsdbo12'
查找
在python中,提供了find
和index
两个方法在特定的字符串中查找其他字符串,find
和index
方法不同的是如果原字符串中没有字串时返回的不同,find
方法直接返回-1,index
方法直接ValueError
错误
>>> a = "abcdefg"
>>> a.find("bc")
1
>>> a.find("cb")
-1
>>> a.index("bc")
1
>>> a.index("cb")
Traceback (most recent call last):
File "<pyshell#18>", line 1, in <module>
a.index("cb")
ValueError: substring not found
>>>
切片
关于字符串切片可以把字符串看作列表,然后对列表切片,可以参考我这篇博客
split分割
字符串的分割就是将字符串按照特定格式进去切分,然后返回列表,原字符串不发生改变,split默认以空字符作为分隔符,若原字符串没有分隔符,则直接将元字符作为列表的元素直接返回
>>> a = "ab ac ad af ae"
>>> a.split()
['ab', 'ac', 'ad', 'af', 'ae']
>>> a.split("a")
['', 'b ', 'c ', 'd ', 'f ', 'e']
>>> a.split("df")
['ab ac ad af ae']
>>>
join拼接
join方法则是和split方法执行相反的操作,join方法是将迭代对象通过特定的连接符进行拼接
>>> a = "ab ac ad af ae"
>>> b = a.split()
>>> print(b)
['ab', 'ac', 'ad', 'af', 'ae']
>>> "+".join(b)
'ab+ac+ad+af+ae'
>>>
判断
1、in 和not in
判断字符串是否存在特定的字串
2、startswith和endswith
判断字符串是否以特定字串开头或结尾
修改
1、删除空白字符串
strip方法返回删除字符串的左右空白的新的字符串对象,lstrip、rstrip分别是返回删除坐空白和右空白字符串的新对象
2、替换
replace是用新的子串替换旧的子串,并返回替换后的新的字符串对象,如果字符串中含有多个旧的子串,都会被替换掉
>>> a = "ab ac ad af ae ac"
>>> a.replace("ac","++")
'ab ++ ad af ae ++'
>>>
大小转化
capitalize将每句话的首字符大写
lower是将字符串中大写的字符转为小写的字符
upper将字符串中小写的字符转为大写的字符
title将每个词首字符大写
swapcase是将字符串中的大小写互换
>>> a = "ab ac ad af ae"
>>> a.capitalize()
'Ab ac ad af ae'
>>> a.title()
'Ab Ac Ad Af Ae'
>>> b = a.upper()
>>> print(b)
AB AC AD AF AE
>>> a.lower()
'ab ac ad af ae'
>>> a.swapcase()
'AB AC AD AF AE'
其他
len函数返回字符串的长度
count方法是计算字符串中含有特定子串的个数
>>> a = "ab ac ad af ae ac"
>>> len(a)
17
>>> a.count("ac")
2
字符串驻留内存规则
对于符合标识符规则(只包含字母、下划线_、数字)的字符串对象会启动字符串驻留内存机制,相同的字符串对象在内存中之保存一份,对于不符合要求的字符串则不会启动内存驻留机制,
>>> a = "sfdo_21"
>>> b = "sfdo_21"
>>> a is b
True
>>> c = "sdf!"
>>> d = "sdf!"
>>> c is d
False
>>> id(a)
71457848
>>> id(b)
71457848
>>> id(c)
71458016
>>> id(d)
71398040
>>>
上面代码中,由于a和b的字符串符合标识符规则,所以就能够启动内存驻留机制,c和d的字符串不符合标识符规则,则不启动内存驻留机制