字符串驻留:常量字符串只保留一份。
c = "dd#"
d = "dd#"
print(c is d) #True
字符串比较和同一性
==和!=对字符串进行比较,是否含有相同的字符。
is和not is 判断两个对象是否是同一个对象。比较的是对象的地址,即id(obj1)是否和id(obj2)相等
成员操作符判断子字符串
in和not in判断某个字符(子字符串)是否存在于字符串中
"ab" in "abcdefg" #true
字符串常用方法
方法 | 说明 |
len(a) | 字符串长度 |
a.startswith(b) | 判断字符串a是否以字符串b开头 |
a.endswith(b) | 判断字符串a是否以字符串b结尾 |
a.find(b) | a中第一次出现b的位置 |
a.rfind(b) | a中最后一次出现b的位置 |
a.count(b) | b在a中出现了多少次 |
a.isalnum() | 判断所有字符是否全是字母或数字 |
a.strip(b) | 去除a中首尾的b |
a.lstrip(b) | 除去a中左边的b |
a.rstrip(b) | 除去a中右边的b |
a.capitalize() | 产生新的字符串,首字母大写 |
a.title() | 产生新的字符串,每个单词首字母都大写 |
a.lower() | 产生新的字符串,所有字符转换为小写 |
a.upper() | 产生新的字符串,所有字符转换为大写 |
a.swapcase() | 产生新的字符串,所有字符大小写互换 |
a.isalpha() | 判断字符串是否只由字母组成(含汉字) |
a.isdigit() | 判断字符串是否只由数字组成 |
Python中,字符串属于不可变对象,不支持原地修改,如果需要修改其中的值,只能创建新的字符串对象。如果确实需要原地修改字符串,可以使用is.StringIO对象或array模块
import io
s = "abcdefgh"
sio = io.StringIO(s) # 可变字符串
print(sio) # <_io.StringIO object at 0x>
v1 = sio.getvalue() # abcdefgh
sio.seek(7) # 指针指向索引7这个位置
sio.write("CSDN") # abcdefgCSDN
v2 = sio.getvalue()