三、字符串补充

一、字符串格式化

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('|'))#以传入的参数分割目标字符串,分割结果以列表的形式

 

posted @ 2019-02-28 19:37  Darius-xiong  阅读(242)  评论(0编辑  收藏  举报