一、字符串格式化
1、输出函数中的字符串的格式化
之前有简单地使用了说明了prin函数中字符串的拼接。
name = 'xiong' age = 21 sex = '男' high = 175 weight = 56 print('我姓%s,性别%s,今年%s岁,身高%scm,体重%skg。'%(name,sex,age,high,weight))
为了保证绝对正确。只需要将上面的%后的s改为需要拼接的数据类型的对应格式即可。比如整数对应的是%d;对应关系如下所示;
%s | 格式化字符串 |
%d | 格式化整数 |
%u | 格式化无符号整型 |
%c | 格式化字符及其ASCII码 |
%f | 格式化浮点数字,可指定小数点后的精度 |
%o | 格式化无符号八进制数 |
%x | 格式化无符号十六进制数 |
%X | 格式化无符号十六进制数(大写) |
上表所列仅仅是部分常用的。完整的用到的时候在查吧。
2、format()的使用方法
format函数其实是使用在格式化的字符串中留{},在字符串调用format是传入需要填入的数据。例如:
str = '{}朋友,你好啊!' print(str.format('新来的')) #新来的朋友,你好啊!
{}中可以不设置参数,也可以设置,设置的参数可以相同。
如果不设置参数,那么传入的数据的个数必须与预留的{}的个数一致。且传入的数据会按照传入顺序填入{}中。
如果设置了参数。传入参数时可以以key-value的形式传入。例如:
str = '{adj}朋友,你好啊!{action}' print(str.format(action='欢迎欢迎!',adj='新来的'))
如果{}中设置了标识,那么传入如参数的时候不能不以key-value的形式传入参数。如果非要不以key-value的形式传入,请设置标识为0,1,2,3……
str = '{0}朋友,你好啊!{1}' print(str.format('新来的','欢迎欢迎'))
示例,使用字典元素格式化字符串:
注意:使用列表格式化字符串,一定要是{0[ ] }的形式。
# 通过列表索引设置参数 web_list = ['博客园','www.cnblogs.com'] print('网站名:{0[0]},网址:{0[1]}'.format(web_list))
示例,使用列表元素格式化字符串:
注意:传入字典的时候加上**。
# 通过字典设置参数 webdic = {"name": "博客园", "url": "www.cnblogs.com"} print("网站名:{name}, 地址 {url}".format(**webdic))
3、format填充与对齐
格式限定符,语法是{}中带:号;
填充常跟对齐一起使用;^、<、>分别是居中、左对齐、右对齐,后面带宽度。:号后面带填充的字符,只能是一个字符,不指定的话默认是用空格填充
示例:
print( '{:>8}'.format('888')) ' 888' print('{:^8}'.format('888')) ' 888 ' print('{:<8}'.format('888')) '888 ' print('{:A>8}'.format('888')) 'AAAAA888' print('{:A<8}'.format('888')) '888AAAAA'
4、浮点数精度
直接看代码,个人领悟吧。
print('{:.2f}'.format(3.1415926)) '3.14'
二、字符串中常用的方法
1、把字母全部变成大写:upper()
test_str = 'hello world' print(test_str.upper()) ‘HELLO WORLD’
'可以用变量接收str.upper()'
可以用变量接收str.upper()
2、把字母全部变成小写:lower()
test_str2= 'HELLO WORLD' print(test_str2.lower()) 'hello world'
'可以用变量接收str.lower()'
3、首字母大写:capitalize()
test_str = 'hello world' print(test_str.capitalize()) 'Hello world'
'可以用变量接收str.capitalize()'
4、大小写转换:swapcase()
test_str = 'hello world' print(test_str.swapcase()) 'HELLO WORLD'
'可以使用变量接收str.swapcase()'
5、以什么开头:startwith():
str = 'abcdefg' print(str.startswith('a')) 'True'
'是以给定的字符或者字符串开始返回True,否则返回False。可以使用变量接收。'
6、以什么结尾:endwith()
str = 'abcdefg' print(str.endswith('fg')) 'True' '是以给定的字符或者字符串开始返回True,否则返回False。可以使用变量接收返回值。'
7、统计出现的次数:count()
str = 'ahfdsuagsdiaiwreufh' a_times = str.count('a') b_times = str.count('ds') print(a_times,b_times)# 3 1 '返回值是出现的次数,使用变量接收。'
8、查找下标:find()
str = 'ahfdsuagsdiaiwreufh' index = str.find('a') print(index)#0 '如果查找的字符出现多次,返回第一个从左到右匹配到的字符的索引。'
9、字符串替换:replace()
new_str = str.replace('a','A') print(new_str)#AhfdsuAgsdiAiwreufh '替换目标字符串中的所有匹配的字符'
10、去除头尾空格:strip()
str = ' hello,i`m fine,and you? \n' print(str) print(str.strip()) # hello,i`m fine,and you? # # hello,i`m fine,and you? #只能去掉头和尾的换行符合空格
11、获取长度:len()
print(len('hello'))
12、常用is的使用
print('nihao你好'.isalpha())#判断是否全是汉子或者字母,返回True或者False print('12426'.isdigit())#判断是否全是阿拉伯数字,返回True或者False print('1234abcd'.isalnum())#判断是否全是数字或者字母,返回True或者False
13、分割:split()
print('hello| world'.split('|'))#以传入的参数分割目标字符串,分割结果以列表的形式