字符串
字符串是不可变的对象
关于字符串的函数
1、首字母大写,其余小写 x.capitalize()
2、所有小写 x.casefold()
3、每个单词的首字母大写,其他小写 x.title()
4、将字母大小写翻转,大写变小写,小写变大写 x.swapcase()
5、所有大写 x.upper()
6、全小写,只能处理英语 x.lower()
>>> x="I love FishC"
>>> x.capitalize()
'I love fishc'
>>> x.title()
'I Love Fishc'
>>> x
'I love FishC'
>>> x.lower()
'i love fishc'
>>> x.swapcase()
'i LOVE fISHc'
>>> x.upper()
'I LOVE FISHC'
>>> x.casefold()
'i love fishc'
位置函数
1、字符串占y个字符位置并居中 x.center(y) / x.center(y,z) 用z填充空余位置
2、字符串占y个字符位置并左对齐 x.ljust(y) / x.ljust(y,z)
3、字符串占y个字符位置并右对齐 x.rjust(y) / x.rjust(y,z)
4、填充0使得字符串占y个位置 x.zfill(y)
5、判断字符串首字母是否是某个值,x.startswith(" ",[开始位置],[结束位置]),返回true/false
6、判断字符串最后字母是否是某个值,x.endswith(" "),返回true/false
7、判断是否全为小写字母 x.isupper( ),返回True/False
8、判断是否为字母 x.isalpha()
9、判断是否是空白 x.isspace()
10、判断是否是可打印的 x.isprintable()
11、x.isdecimal() x.isdigit() x.isnumeric() ,x.isalnum() 包括前面三个函数,任一函数返回Ture,则该函数为True
12、x.isidentifier() 检测是否是合法的python标识符
13、用keyword函数判断字符串是否是保留标识符,keyword.iskeyword(" ")
14、x.lstrip() ,x.rstrip() 字符串左/右边的留白去掉 x.strip() 字符串左右两边的留白均去掉
x.lstrip("wcom."), x.rstrip("wcom.") 去掉字符串里左/右边的www./.com,x.strip()删除www.和.com
15、removeprefix("值"),removesuffix("值") 删除字符串中指定的值
>>> x.center(15)
' I love FishC '
>>> x.ljust(12)
'I love FishC'
>>> x.ljust(15)
'I love FishC '
>>> x.rjust(15)
' I love FishC'
>>> x.zfill(15)
'000I love FishC'
>>> x.rjust(15,"7")
'777I love FishC'
基本操作
查找
1、查找区间里字符的个数 x.count(字符,开始位置,结束位置)
2、从左往右查找,返回位置,不存在返回-1 x.find(字符)
从右往左找,返回位置 x.rfind(字符),位置均从0开始,返回查找到的第一个位置
3、判断首位置的字符串是否是y,返回True/False x.startswith("y",开始位置,结束位置)
判断最后位置的字符串是否是y,返回True/False x.endswith("y",开始位置,结束位置)
>>> x="youwill"
>>> x.count("l")
2
>>> x.find("l")
5
>>> x.rfind("l")
6
>>> x.startswith("will",1)
False
>>> x.startswith("will",4)
True
>>> x.endswith("have",5,13)
True
>>> x="他爱你"
>>> if x.startswith(("他","我")):
print("yes")
yes
>>> x="I Love you"
>>> x.startswith("I")
True
>>> x.startswith("y")
False
>>> x.startswith("L",2)
True
>>> x.endswith("u")
True
>>> x.endswith("you")
True
>>> x.endswith("LO",0,4)
False
>>> x.endswith("Lo",0,4)
True
>>> x.istitle()
False
>>> x.isupper()
False
>>> x.upper().isupper()
True
>>> x.isalpha()
False
>>> "I_AM_GIRL".isidentifier()
True
>>> "I am a girl".isidentifier()
False
>>> "520lijk".isidentifier()
False
>>> import keyword
>>> keyword.iskeyword("if")
True
>>> keyword.iskeyword("ik")
False
替换
一个tab替换成y个空格 x.expandtabs(y)
将y替换成z x.replace(y,z)
将x替换成a... 将k忽略掉 str.maketrans("xyz","abc","k")
>>> code="""
print("I love fishc")
print("I love wife")
"""
>>> new=code.expandtabs(4)
>>> print(new)
print("I love fishc")
print("I love wife")
>>> "I go to study".replace("I","you")
'you go to study'
>>> table=str.maketrans("abc","123")
>>> "you will have an apple".translate(table)
'you will h1ve 1n 1pple'
>>> "you will have an apple".translate(str.maketrans("abc","123","will"))
'you h1ve 1n 1ppe'
拆分字符串
x.partition("值") 从左往右找 x.rpartition("值") 从右往左找
x.split("",数字) , x.rsplit("")
按行分割,可以识别\r\n x.splitlines()
>>> "ww.com/usij.www".partition(".")
('ww', '.', 'com/usij.www')
>>> "ww.com/usij.www".rpartition("/")
('ww.com', '/', 'usij.www')
>>> "ww.com/usij.www".split()
['ww.com/usij.www']
>>> "ww.com usij.www".split()
['ww.com', 'usij.www']
>>> "ww.com/usij.www".split(".")
['ww', 'com/usij', 'www']
>>> "ww.com/usij.www".split(".",1)
['ww', 'com/usij.www']
>>> "ww.com/usij.www".rsplit(".",1)
['ww.com/usij', 'www']
>>> "ww.com/usij.www".split(".",2)
['ww', 'com/usij', 'www']
拼接字符串用join
x.join([”y","z" ])或x.join(()) 拼接成 yxz
>>> ".".join(("cl","join","you"))
'cl.join.you'
>>> "^".join(["156","lo","47"])
'156^lo^47'
format 格式化字符串
含有{}的字符串.format(值),值会自动填充到{}里,!!{z}里z=值 要写在后面,{}里的数字是位置的意思,从0开始
>>> "for mat where {}".format("chaozhou")
'for mat where chaozhou'
>>> "{1} love {0}".format("I","you")
'you love I'
>>> "my name is {name},what is your name{0}".format(name=1,"ll")
SyntaxError: positional argument follows keyword argument
>>> "my name is {name},what is your name{0}".format("ll",name=1)
'my name is 1,what is your namell'