字符串大小写处理:
a='xiao bin'
#字符串首个字母大写:
a.capitalize()---->Xiao bin
#单词首字母全部大写
a.title()--------->Xiao Bin
#单词全部大写
a.upper()--------->XIAO BIN
#单词全部小写
a.lower()--------->xiao bin
字符串增长处理:
#拼接
1·str+str
"I am a"+"boy"---->I am a boy
2·strstr
"I am a""boy"----->I am a boy #该方法只可用于字符串拼接,变量不行 错误方法:>>>prefix = 'Py' >>>prefix 'thon'
#复制
str*n
a='python'
a*2--------------->pythonpython
#增加元素
str.join(iterable) #对可迭代的对象用给定的字符串进行拼接,返回拼接后的字符串,可迭代的对象包括字符串、元组、列表等
'.'.join(a)------------>p.y.t.h.o.n
str.jion()
name = "xxx"
item = ["i", "am", "learning"]
name.join(item)------>ixxxamxxxlearning
#使用制表符增加空格
str里面加制表符
"pyth\ton"----------->"pyth on"
#填充
a='下载完成'
字符串放中间填充:
str.center() #center(宽度,填充符号)
a.center(20,'*')---------->********下载完成********
字符串放左边填充:
name.ljust(10, 'y')-------->下载完成yyyyyy
字符串放右边填充
name.rjust(25, 'y')-------->yyyyyy下载完成
占位符使用
i=6
"==========正在抓取%e页==========" %i--->==========正在抓取6.000000e+00页==========
"==========正在抓取%f页==========" %i--->==========正在抓取6.000000页==========
"==========正在抓取%c页==========" %i--->==========正在抓取 页==========
"==========正在抓取%s页==========" %i--->==========正在抓取6页==========
format格式化 #可用于爬虫URL拼接
1~设置参数 #槽要相互对应
a="I do{} want {} play"
b=a.format("n't",'to')----------->I don't want to play
2~传入对象 #:引导符号,*填充符号,^居中对齐,>右对齐,<左对齐,20字符串宽度
c="I'm binger"
d='{0:*^20}'.format(c)------------>*****I'm binger*****,0:代表第0个槽
字符串减短处理:
#删除
a=' xiao bai '
删除两端空格 #若strip()内指定子字符串,也可除去母字符串两端指定内容
str.strip()
a.strip()------------>'xiao bai'
删除结尾空格 #不论个数
str.rstrip()
a.rstrip()---------->' xiao bai'
删除开头空格 #不论个数
str.lstrip()
a.lstrip()------------>'xiao bai '
替换删除法
name.replace(old, new, count) #把字符串中的子字符串转换成新的,转换的数目由count决定
b=a.replace(' ',"")---------------->'xiaobai'
正则删除法
re.sub(pattern,repl,string,count=0,flags=0)
import re
a="da dad ad ada aaedr a daf s "
b=re.sub('\s','',a) #\s为匹配规则(空格)
print(b)------------------------->dadadadadaaaedradafs
字符串判断处理
判断字符串中所有字符是否都为字母 #返回bool型
name.isalpha()
name = "abn"
name.isalpha()----------------------->True
判断字符串中所有字符是否都为数字 #返回bool型
name.isdigit()
name = "12abn"
name.isdigit()----------------------->False
判断字符串中所有字符是否都为数字或字母 #返回bool型
name.isalnum()
name = "12abn"
name.isalnum()------------------------>True
判断字符串中所有字符是否都为空白符,包括空格、缩进、换行等不可见转义符 #返回bool型,至少得有一个字符,否则判定为假
name.isspace()
name = "\n"
name.isspace()---------------------------->True
name = ""
name.isspace()---------------------------->False
判断字符串是否以指定的前缀开头
name.startswith(prefix, start, end)
name = "2018.9.1"
name.startswith("2018")------------------->True
判断字符串是否以指定的后缀结束
name.endswith(suffix, start, end)
name = "xx.doc"
name.endswith(".doc")--------------------->True
判断一个字符串是否包含在另一个字符串里面
in 和 not in
"ss" in "i xx sss"------------------------>True
"am" not in "smm ffn"--------------------->True
字符串分割处理
分割成列表子字符串
name.split(sep, max_split) #sep为分隔符,max_split为最大的分割次数,如果省略那就是有多少分割多少,返回分割后的子字符串组成的列表
str = "123-456-789"
str.split("-")-------------------->['123', '456', '789']
str.split("-", 1)----------------->['123', '456-789']
name.splitlines(keepends) #按换行符\r、\n对字符串进行分割,keepends为bool型,表示是否保留换行符,返回由分割后组成的子字符串组成的列表
name = "xxx\rbbb\n"
name.splitlines()---------------->['xxx', 'bbb']
name.splitlines(True)------------>['xxx\r', 'bbb\n']
分割成元组子字符串
name.partition(sep) #从字符串的左侧开始查找分隔符sep,若找到分隔符,则返回一个元组,由分隔符左侧的内容、分隔符、分隔符右侧的内容组成。 找不到分隔符就以2形式返回
str.partition("-")----------------->('123', '-', '456-789')
str.partition(" ")----------------->('123-456-789', '', '')
name.rpartition(sep) #从字符串的右侧开始查找分隔符sep,与name.partition(sep)功能一致
str.rpartition("-")---------------->('123-456', '-', '789')