Python中字符串的常用操作方法
-
字符串是有序的字符集合,使用单引号 【 ‘a’ 】双引号【 ”a" 】、三引号【"""a”””or’’’'a’’】。字符串是不可不变对象,从Python3.0起,字符串就是Unicode类型(UTF-8)
-
【\n】换行符号
【\t】相当于TAB按键
【r”” 或者R””】表示不转译字符串中特殊符号
例如:str5 = r”hello \n xdd”
字符串的连接
-
‘string’.join(iterable)->str 将可迭代对象使用指定字符【string】链接成新的字符返回。(注意:可迭代对象本身就是字符串)
-
‘iterable’+‘iterable’->str 将两个字符串连接在一起,返回一个新的字符串
字符串的分割
-
‘iterable’.strip(‘string’)->str 如果iterable两端的字符是自定的字符集chars(切割符),则去除该值,如果chars没有指定,去除iterable两端的空白字符,lstrip去除左边的,rstrip去除右边的
-
‘iterable’.splitlines(keepends)->str类型的list集合,使用行来切割字符,keepends指是否保留行分隔符,默认不保留(默认值:keepends=False)。行分隔符包括【\n】:linux【\r\n】:windows【\r】:mac
-
‘iterable’.split(‘string’,maxsplit=-1) -> str类型的list集合,使用自定义字符string来切割字符串,返回切割后的字符数组,string为缺省情况时会以空白符号为切割符号。maxsplit 指定切割的次数,-1表示切割整个字符串,lsplit为从左向右切,rsplit为从右向左切
-
‘iterable’.partition(sep)->(head,sep,tail) 切割字符串,返回一个三元组(从左到右切割),sep为切割符号且必须指定。将指定字符从左至右切割成,头部,分割符,尾部三部分组成一个三元组;如果没有找到分割符,就只返回头部和2个空元素的三元组。rpartition从右到左切割,lpartition从左向右切割
字符串大小写
- ‘iterable’.upper() ->str #将字符中所有字符转换成大写
‘iterable’.lower()->str #将字符中所有字符转换成小写
‘iterable’.swapcase()->str #将字符中大写转换成小写,小写转换成大写
‘iterable’.capitalize()->str #将字符串中首个单词的首字母转换成大写字母
‘iterable’.title()->str #将英文单词中每个字母的首字母都转换成大写字母
字符串判断
- ‘iterable’.isalnum() ->bool 是否是字母和数字组成
‘iterable’.isalpha() ->bool 是否是字母
‘iterable’.isdecimal() ->bool 是否只包含十进制数字
‘iterable’.isdigit() ->bool 是否全部数字(0-9)
‘iterable’.isidentifier ->bool 是否是字母下划线开头,其他都是字母、数字、下划线(标识符)
‘iterable’.islower() ->bool 是否都是小写
‘iterable’.isupper() ->bool 是否都是大写
‘iterable’.isspace() ->bool 是否只包含空白字符
‘interable’.endswith(suffix,start,end)->bool 在指定区间[start,end),字符串是否是suffix字符结尾,是返回True 否返回False。如果不指定区间,默认区间是整个字符串
‘interable’.startswith(prefix,start,end)->bool 在指定区间[start,end),字符串是否是prefix开头。如果不指定区间,默认区间是整个字符串
字符串查询
- ‘iterable’.find(‘string’,start,end)->int 在指定区间 [ start,end),从左至右,查找字符串string。找到后返回索引,没找到返回-1,string为要查找的字符串,start为查找起始点索引,end为查找区间的结束索引(不包含结束索引)。rfind从右边开始,lfind从左边开始,O(n)
- ‘iterable’.index(‘string’,start,end)->int 在指定区间 [ start,end),从左至右,查找字符串string。找到后返回索引,没找到抛出异常ValueError,string为要查找的字符串,start为查找起始点索引,end为查找区间的结束索引(不包含结束索引,如果不设置start和end就在整个字符串中查找),rindex从右开始,lindex从左开始,O(n)
- ‘iterable’.count(‘string’,start,end)->int 在指定区间 [ start,end),从左到右,统计子串string出现的次数(如果没有指定start和end,默认在整个字符串中统计,string为要统计的字符串,start为统计的起始索引,end为统计的结束索引(不包含结束索引)O(n)
- len(‘iterable’) ->int 返回字符串的长度 O(n)
字符串修改
- 'iterable’replace(old,new,count)->str 将字符中匹配到old的字符串替换成new新的字符串,old为需要替换的字符,new为替换字符,count为替换次数,不指定count则默认全部替换。
字符串格式化
-
”{}{xxx}”.format(*args,**kwargs)->str
args是位置参数,是一个元组
kwargs是关键字参数,是一个字典
{}花括号为占位符,表示按照顺序匹配参数,{n}表示取位置参数args[n]对应的值
{xxx}其中xxx为关键字名称,表示在关键字参数kwargs中搜索名称一致的参数对应值
{{}}表示打印花括号(注意:双符号表示转译输出)
位置参数:
按照位置顺序用位置参数替换前面的格式字符串的占位符
例如:【“{}:{}”.format(“192.168.61.100”,8888)】 -
关键字参数或命名参数
位置参数按照序号匹配,关键字参数按照名称匹配
例如:【{server}{1}:{0}.format(8888,”192.168.61.100”,server=”xdd”)】 -
访问元素:
例如:【"{0[0]}.{0[1]}".format((‘xdd’,‘com’))】 -
对象属性访问
例如:【"({p1.x},{p1.y})".format(p1=p)】 -
对齐
例如:【"{0}{1}={2:< 3}".format(3,2,32)】
其中【{2:< 3}】表示输出数组中下标为2的内容。输出字符长度为3个字符长度,如果不够用空格补齐。<小于号表示向左对齐输出 -
居中
例如:【{:^30}.format(‘centered’)】
表示将centerd单词居中显示,显示长度为30个字符,不够的地方用星号替代
【^】表示居中 -
进制
例如:【“int:{0:d}; hex:{0:x}; oct:{0:o}; bin:{0:b}”.format(50)】
其中【{0:d}】表示按照十进制数字输出
【{0:x}】表示按照十六进制数字输出
【{0:o}】表示按照八进制数字输出
【{0:b}】表示按照二进制数字输出
【{0:#b}】中#表示输出数字时,带上精制数的对应表示符号
例如:
其中:192.168.0.1名称:点分四段十进制表示法的ipv4地址