2.25-字符串的格式字符串、函数和方法
相关函数:
len:获取字符串的长度
str:
str(数据) - 将指定数据转化为字符串(任何类型的数据都可以转化为字符串)
转换的时候,直接在数据的打印值外加引号
eval:
eval(字符串) - 计算字符串表达式的结果
str1='20:a,10:v'
dict1=eval(str1)
print(dict1)
list1=[]
s=set()
t=()
dict1={}
str1=''
print(type(list1))
print(type(s))
print(type(t))
print(type(dict1))
print(type(str1))
相关方法:
1.join
字符串.join(序列) - 将序列中的元素用指定字符串拼接出一个字符串(序列中的元素必须是字符串)
list1 = ['name', 'age', 'gender']
result = '+'.join(lsit1)
print(result) #'name+age+gender'
result = '♥'.join(list1)
print(result) #'name♥age♥gender'
2.split 和 rsplit
字符串1.split(字符串2) - 将字符串1中所有的字符串2作为切割点对字符串进行切割
字符串1.split(字符串2,N) - 将字符串1中前N个字符串2作为切割点对字符串进行切割
字符串1.rsplit(字符串2.N) - 将字符串1中后N个字符串2作为切割点对字符串进行切割
str1='abc*123*JKK'
result=str1.split('*')
print(result) #['abc','123','jkk']
注意:如果切割点在字符串的开头、结尾或连续出现,切完后会出现空串
str1='*abc*123*JKK*'
result=str1.split('*')
print(result) #['','abc','123','jkk','']
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? '
result = str1.replace('you', 'me')
print(result)
4.替换字符
str.maketrans(字符串1,字符串2) - 创建字符串1中所有字符和字符串2中所有字符一一对映关系
字符串.translate(字符对应表) - 按照字符对应表的关系将字符串中的字符进行替换
str1 = '一九4acl三5clm2'
table = str.maketrans('1234567', '一二三四五六天')
result = str1.translate(table)
print(result)
5.删除空白 - 空格、缩进和换行符
字符串.strip() - 删除字符串两端的空白
字符串.rstrip() - 删除字符串右端的空白
字符串.lstrip() - 删除字符串左端的空白
字符串.strip('/') - 删除字符串两端的/符号
6.统计个数
字符串1.count(字符串2) - 统计字符串1中字符串2出现的个数
字符串1.count(字符) - 统计字符串1中字符出现的个数
格式字符串:
字符串的内容不确定怎么办?
name = input('请输入姓名:')
age = input('请输入年龄:')
#xxx今年xx岁
1.字符串拼接:
massage = name + '今年' + str(age) + '岁!'
print(massage)
2.格式字符串
包含格式占位符的字符串 %(数据1,数据2,...)
注意:()中数据的个数必须与字符串中占位符一一对应(个数和类型)
格式占位符:
%s: - 字符串占位符,可以对应任意类型的数据
%d: - 整数占位符,可以对应任何数字,小数会自动取整
%f: - 浮点数占位符,可以对应任何数字,整数会自动加小数点
#xxx今年xx岁
#'%s今年%d岁' % (name,age)
name='诡神'
age=18
message = '%s今年%d岁' % (name,age)
print(message)
3.f.string
1)基本语法 - f'{表达式}'
2)加参数 - f'{提供数据表达式:参数}'
a.控制小数位数的参数 - f'{表达式:.NF}' - 保留N位小数
money = 223.8
result = f'金额:{money}元'
result = f'金额:{money:.2f}元'
print(result)
b.金额数值显示加逗号
只加逗号: f'{表达式:,}'
加逗号并且控制小数位数: f'{表达式:,.Nf}'
money = 18000000000
result = f'{金额:{money:,}元'
print(result)
c.显示百分比 - f'{:表达式:.N%}'
x = 0.34
result = f'增长率:{x:.2%}'
print(result)
d.控制长度
x = '诡神'
result = f'姓名:{x:0>3}' #姓名:0诡神
result2 = f'姓名:{x:0<3}' #姓名:诡神0
print(result,result2)
练习:
name='诡神'
武功='九转神功'
age=99
敌人='蚊蝇'
num=30000
time=3424467
message = '%s修炼%s%d年怒杀%s%d只最长飞行时间%.2f秒' % (name,武功,age,敌人,num,time)
print(message)
message = f'{name}修炼{武功}{age}年怒杀{敌人}{num}只最长御空{time}秒'
print(message)