人生苦短,我用Python(6)
1、分隔、合并字符串
分隔字符串是把字符串分隔为列表,而合并字符串是把列表合并为字符串,分割字符串和合并字符串可以看作是互逆操作。
(1)分隔字符串
字符串对象得split()方法可以实现字符串分隔,把一个字符串按照指定得分隔符切分为字符串列表,该列表的元素中不包括分隔符。split()方法的格式如下。
str.split(sep,maxsplit)
#str:表示要进行分隔的字符串
#sep:用于指定分隔符,可以包含多个字符,默认为None,即所有空字符(包括空格、换行"\n"、制表符"\t"等)
#maxspllit:可选参数,用于指定分隔的次数,如果不指定或者为-1,则分隔次数没有限制,否则返回结果列表的元素个数,个数最多为maxsplit+1
#返回值:分割后的字符串列表
在split()方法中,如果不指定sep参数,那么也不能指定maxsplit参数。
(2)输出人名:
str1='@Python @Java @Linux'
list1=str1.split(' ')
print('您@的好友有')
for item in list1:
print(item[1:])
2、合并字符串
合并字符串与拼接字符串不同,它会将对多个字符串采用固定的分隔符连接在一起。
合并字符串可以使用字符串对象join()方法实现,语法格式如下:
strnew=string.join(iterable)
#strnew:表示合并后生成的新字符串
#string:字符串类型,用于只当合并时的分隔符
#iterable:可迭代对象,该迭代对象中的所有元素(字符串表示)将被合并为一个新的字符串。string作为边界点分隔出来。
name=['库里','哈登','欧文','沃克'] new_name='+'.join(name) #用“+”进行连接 print('NBA球星为:',new_name)
5.1.5 检索字符串
1、count()方法
count()方法用于检索指定字符串在另一个字符串中出现的次数。如果检索的字符串不存在,则返回0,否则返回出现的次数。其语法格式如下:
str.count(sub[,start[,end]])
#str:表示原字符串
#sub:表示要检索的子字符串
#start:可选参数,表示检索范围的起始位置的索引,如果不指定,则从头开始检索。
#end:可选参数,表示检索范围的结束位置的索引,如果不指定,则一直检索到结尾。
name=['库里','哈登','欧文','沃克'] new_name=name.count('哈登') print(new_name)
2、find()方法
该方法用于检索是否包含指定的子字符串。如果检索的字符串不存在,则返回 -1 ,否则返回首次出现该子字符串时的索引。其语法格式如下:
str.find(sub[,start[,end]])
#str:表示原字符串
#sub:表示要检索的子字符串
#start:可选参数,表示要检索范围的其实位置的索引,如果不指定,则从头开始检索。
#end:可选参数,表示检索范围的结束位置的索引,如果不指定,则一直检索到结尾。
name='詹姆斯,戴维斯,唐斯,考辛斯' print(name.find('斯'))
表示第一次出现该字符的下标。
3、index()方法
用于检索指定的字符串,如果指定的字符串不存在时则抛出异常。
str.index(sub[,start[,end]])
4、startswith()方法
startswith()方法用于检索字符串是狗以指定字符串开头,如果是返回True,否则返回False。
str.startswith(sub[,start[,end]])
name='詹姆斯,戴维斯,唐斯,考辛斯' print(name.startswith('斯'))
5、endswith()方法
endswith()方法用于检索字符串是否以指定子字符串结尾,如果是返回True,否则返回False。
str.endswith(sub[,start[,end]])
name='詹姆斯,戴维斯,唐斯,考辛斯' print(name.endswith('斯'))
5.1.6 字母的大小写转换
在Python中,字符串对象提供了lower()方法和upper()方法进行字母的大小写转换,即可用于将大写字母转换为小写字母或者将小写字母转换为大写字母。
1、lower()方法
lower()方法用于将字符串中的大写字母转换为小写字母,如果字符串中没有需要被转换的字符将原字符串返回。
str.lower()
#str为要转换的字符串
url="WWW.baidu.Com" print(url.lower())
2、upper()方法
upper()方法用于将字符串中的小写字母转换为大写字母,如果跟字符串中没有需要被转换的字符将原字符返回。
str.upper()
#str为要转换的字符串
url="WWW.baidu.Com"
print(url.upper())
5.1.7 去除字符串中的空格和特殊字符
去除在输入数据时无意输入空格或字符串前后不允许出现空格和特殊数字。
strip() 方法 — 去除字符串左右两边的空格和特殊字符。
lstrip()方法 — 去除字符串左边的空格和特殊字符。
rstrip()方法 — 去除字符串右边的空格和特殊字符。
特殊字符指的是 制表符 \t ,回车符 \r,换行符 \n等。只能去除左右,不能去除中间。
1、strip()方法
str.strip([chars])
#str:要去除空格的字符串
#chars:可选参数,用于指定要去除的字符,可以指定多个,如果设置的是"@.",则去除左、右两侧包括的"@"或".",如果不指定chars参数,默认去除空格和特殊字符
str1=" 好好学习,努力 \t\n" print("str1原字符串:",str1) print("str1现字符串:",str1.strip()) str2="@...1234.567.8@" print("str2原字符串:",str2) print("str2先字符串:",str2.strip('@.'))
2、lstrip()方法
用于去掉字符串左侧的空格和特殊字符。
str1=" \nwww.baidu.com \n" print("原字符串:",str1) print("现字符串:",str1.lstrip())
3、rstrip()方法
用于去除字符串右侧的空格的特殊字符
str1=" \nwww.baidu.com \n" print("原字符串:",str1) print("现字符串:",str1.rstrip())
5.1.8 格式化字符串
格式化字符串是指先制定一个模板,在这个模板中预留几个空位,然后再根据需要填上相应的内容。这些空位需要通过指定的符号标记(也称为占位符),而这些符号不会显示出来。
1、使用”%“操作符。
'%[-][+][0][m][.n]格式化字符'%exp
- 可选参数,用于指定左对齐,正数前方无符号,负数前面加符号。
+ 可选参数,用于指定有对齐,正数前方加正号,负数前方加负号。
0 可选参数,表示右对齐,正数前方无符号,负数前方加负号,用0填充空白处(一般与m参数一起使用)
m 可选参数,表示占有宽度。
.n 可选参数,表示小数点后保留的位数。
格式化字符 用于指定类型。
exp 要转换的项,如果要指定的项有多个,需要通过元组的形式进行指定,但不能使用列表。
2、常用的格式化字符。
格式化字符 说明 格式化字符 说明
%s 字符串(采用str()显示) %r 字符串(采用repr()显示)
%c 单个字符 %o 八进制整数
%d或者%i 十进制整数 %e 指数(基底写为e)
%x 十六进制整数 %E 指数(基底写为E)
%f或者%F 浮点数 %% 字符%
例:格式化输出一个保存公司信息的字符串。
name='编号:%06d\t公司名称:%s\t官网:www.%s.com' con1=(6,'百度','baidu') con2=(7,'腾讯','tencent') print(name%con1) print(name%con2)