day10总结
- 字符串相关函数
- 字符串相关方法
- 格式字符串
一,字符串相关函数
1.相关函数: len、str 、eval
str(数据) - 将指定数据转换成字符串(任何类型的数据都可以转换成字符串;
转的时候是直接在数据的打印值外面加引号)
str(100) # '100'
str(True) # 'True'
eval(字符串) - 计算字符串表达式的结果
str2 = '{10: 20, "abc": 30}' # {10: 20, 'abc': 30}
result = eval(str2)
print(result, result[10])
二、相关方法
1.join
字符串.join(序列) - 将序列中的元素用指定字符串拼接成一个字符串(序列中的元素必须是字符串)
list1 = ['name', 'age', 'gender']
result = '+'.join(list1)
print(result) # 'name+age+gender'
result = ''.join(list1)
print(result) # 'nameagegender'
2.split
字符串1.split(字符串2) - 将字符串1中所有的字符串2作为切割点对字符串进行切割
字符串1.split(字符串2,N) - 将字符串1中前N个字符串2作为切割点对字符串进行切割
字符串1.rsplit(字符串2,N) - 将字符串1中倒数前N个字符串2作为切割点对字符串进行切割
# 注意1:如果切割点在字符串的开头或者结尾,切完后会出现空串
str1 = '*123*abc*mn*'
result = str1.split('*')
print(result) # ['', '123', 'abc', 'mn', '']
# 注意2:如果切割点连续出现,切完后也会出现空串
str1 = '123**abc*mn'
result = str1.split('*')
print(result) # ['123', '', 'abc', 'mn']
str1 = '123*abc*mn*xyz*你好'
result = str1.split('*', 2)
print(result)
result = str1.rsplit('*', 2)
print(result)
3、replace - 替换
字符串1.replace(字符串2,字符串3) - 将字符串1中所有的字符串2替换成字符串3
字符串1.replace(字符串2,字符串3,N) - 将字符串1中前N个字符串2替换成字符串3
str1 = 'how are you? i am fine, thank you! and you?'
# 'how are me? i am fine, thank me! and me?'
result = str1.replace('you', 'me')
print(result) # 'how are me? i am fine, thank me! and me?'
4、替换字符
str.maketrans(字符串1,字符串2) - 创建字符串1中所有字符和字符串2中所有字符一一对映关系表
字符串.translate(字符对映表) - 按照字符对映表的关系将字符串中的字符进行替换
str1 = 'abnsmahsjdbmnsdxybksdall'
# '12nsm1hsjd2mnsdxy2ksd1ll'
table = str.maketrans('ab', '12')
result = str1.translate(table)
print(result)
5、删除字符串两端的空白
字符串.strip() - 删除字符串两边的空白
字符串.rstrip() - 删除字符串两边的空白
字符串.lstrip() - 删除字符串两边的空白
字符串字符串.strip(/) - 删除字符串两边的/
6、count - 统计个数
字符串1.count(字符串2) - 统计字符串1中字符串2出现的次数
str1 = 'how are you? i am fine, thank you! and you?'
print(str1.count('o'))
print(str1.count('you'))
三、格式字符串
1.格式字符串:包含格式占位符的字符串 % (数据1,数据2,数据3,…)
注意()中数据必须和字符串中占位符一一对应
2、格式占位符
%s - 字符串占位符,可以对应任何类型的数据
%d - 整数占位符,可以对应任何数字
%f - 浮点数占位符,可以对应任何数字
%.Nf - 浮点数占位符,可以对应任何数字,让数字保留N位小数
# xxx, 性别:x, 年龄: xx, 月薪:xxxxx.00元!
# '%s, 性别:%s, 年龄: %d, 月薪:%f元!' % (name, gender, age, money)
message = '%s, 性别:%s, 年龄:%d, 月薪: %.2f元!' % (name, gender, age, money)
print(message)
x = '%s-%d-%.2f' % (2.342, 2.342, 2.342)
print(x)
3,f-string
1)语法 f’{表达式}’ - 将{}中表达式的值作为字符串内容拼接到字符串中
a = 100
result = f'a:{100 + 200 + a}, b:{"abc"[-1]}'
print(result) # a:400, b:c
2)加参数
f’{提供数据表达式:参数}’
a.控制小数位数的参数
f’{表达式: .Nf}’ - 保留N位小数
money = 223.8
result = f'金额:{money:.2f}元'
print(result)
b.金额数值显示加逗号
只加逗号:f’{表达式: ,}’
加逗号并且控制小数位数:f’{表达式: ,.Nf}’
money = 1800000
result = f'金额:{money:,}元'
print(result) # 金额:1,800,000元
c.显示百分比
f’{表达式: .N%}’ - N控制百分数的小数位数
x = 0.34 # 34%
result = f'增长率:{x:.1%}'
print(result)
d.控制长度
f’{表达式: 字符>N}’ f’{表达式: 字符<N}’
num = 8
result = f'py2101{num:0>3}'
print(result)