week2day5字符串,格式字符串
1.相关函数:len,str , eval
(1) str(数据) — 将指定数据转化为字符串(任何类型的数据都可以转化为字符串;转的时候直接在数据的打印值 外面加引号)
(2) eval(字符串) — 计算字符串表达的结果(万能转换)
2.相关方法:
(1) 字符串.join(序列) - 将序列中的元素用指定字符拼接成一个字符串(序列中的元素必须是字符串)
list1 = ['name','age','gender']
result='+'.join(list1)
print(result) #'name+age+gender'
#练习1:将列表list1中所有的元素用#连接成一个字符串
list1 = [100, 12.8, True, 'abc']# '100#12.8#True#abc'
result='#'.join([str(x) for x in list1])
print(result)
# 练习2:将列表list1中所有的数字数据用#连接成一个字符串
list1 = [100, 12.8, True, 'abc', 4]
# '100#12.8#4'
result='#'.join([str(x) for x in list1 if type(x)==int or type(x)==float ])
print(result)
(2) split
① 字符串1.split(字符串2) — 将字符串1中所有的字符串2作为切割点对字符串进行切割
注意1:如果切割的在字符串的开头或者结尾,且完后会出现空串
注意2:如果切割的连续出现,且完后也会出现空串
② 字符串1.split(字符串2,N) — 将字符串1中前N个字符串2作为切割点对字符串进行切割(切割点N个)
字符串1.rsplit(字符串2,N) — 将字符串1中后N个字符串2作为切割点对字符串进行切割(切割点N个)
str1='123*abd*mn'
result = str1.split('*')
print(result) #['123','abc','mn']
str1='*123*abd*mn*'
result = str1.split('*')
print(result) #['*','123','abc','mn','*']
(3) replace — 替换(字符串为单位)
字符串1.replace(字符串2,字符串3) — 将字符串1中的所有字符串2替换成字符串3
字符串1.replace(字符串2,字符串3,n) — 将字符串1中前n个字符串2替换成字符串3
(4) 替换字符
str.maketrans(字符串1,字符串2) — 创建字符串1中所有字符和字符串2中所有字符一一对应关系表
字符串.translate(字符对映表) — 按照字符对照表的关系将字符串中的字符进行替换
(5) 删除字符串两端的空白
字符串.strip() — 删除字符串两边的空白
字符串.rstrip() —删除字符串右边的空白
字符串.lstrip() —删除字符串左边的空白
(6) count - 统计个数
字符串1.count(字符串2)— 统计字符串1中字符串出现的次数
3.格式字符串
(1)格式字符串:包含格式占位符的字符串%(数据1,数据2,数据3)
注意:()中的数据必须和格式占位符一一对应
(2)格式占位符
%s — 字符串占位符,可以对应任何类型的数据
%d — 整数占位符,可以对应任何数字
%f — 浮点数占位符,可以对应任何数字
%.Nf — 浮点数占位符,可以对应任何数字,让数字保留N位小数
4.f-string
(1) 语法:f’{表达式}’ - 将{}中表达式的值作为字符串内容拼接到字符串中
(2) 加参数: f’{提供数据的表达式:参数}’
a.控制小数位数的参数: f’{表达式:.nf}’ — 保留n位小数
b.金额数值显示加逗号: f’{表达式:,}’
money = 180000
result=f'金额:{money:,}元'
c. 显示百分比:f’{表达式:.2%}’
d. 控制长度: f{表达式:填充符号>n} 填右边
f{表达式:填充符号<n} 填左边