python字符串格式化方式解析
1.%格式符
name='李四'
age=18
a="姓名:%s,年龄:%s"%(name,age)
print(a)#姓名:李四,年龄:18
b="%(name)s,%(age)s"%{'name':'张三','age':18}
print(b)#张三,18
这种格式化并不是很好,因为它很冗长并且容易导致错误,比如没有正确显示元组或字典
2.str.format()
name='李四'
age=18
#替换字段用大括号进行标记
a1="hello,{}.youare{}?".format(name,age)
print(a1)#hello,李四.youare18?
#通过索引来以其他顺序引用变量
a2="hello,{1}.youare{0}?".format(age,name)
print(a2)#hello,李四.youare18?
#通过参数来以其他顺序引用变量
a3="hello,{name}.youare{age1}?".format(age1=age,name=name)
print(a3)#hello,李四.youare18?
#从字典中读取数据时还可以使用**
data={"name":"张三","age":18}
a4="hello,{name}.youare{age}?".format(**data)
print(a4)#hello,李四.youare18?
在处理多个参数和更长的字符串时仍然可能非常冗长
3.f-Strings
f-strings是指以f或F开头的字符串,其中以{}包含的表达式会进行值替换。
name='李四'
age=18
#F和f的简单使用
b1=f"hello,{name}.youare{age}?"
b2=F"hello,{name}.youare{age}?"
print(b1)#hello,李四.youare18?
print(b2)#hello,李四.youare18?
#字典也可以
teacher={'name':'meet','age':18}
msg=f"Theteacheris{teacher['name']},aged{teacher['age']}"
print(msg)#Thecomedianismeet,aged18
#列表也行
l1=['meet',18]
msg=f'姓名:{l1[0]},年龄:{l1[1]}.'
print(msg)#姓名:meet,年龄:18.
#可以插入表达式
defsum_a_b(a,b):
returna+b
a=1
b=2
print('求和的结果为'+f'{sum_a_b(a,b)}')
#多行f反斜杠
name='barry'
age=18
ajd='handsome'
speaker=f'Hi{name}.'\
f'Youare{age}yearsold.'\
f'Youarea{ajd}guy!'
print(speaker)#Hibarry.Youare18yearsold.Youareahandsomeguy!
print(f"{Youarevery\"handsome\"}")#报错
#括号的处理-->重点:两对为一组
print(f"{{73}}")#{73}
print(f"{{{73}}}")#{73}
print(f"{{{{73}}}}")#{{73}}
m=21
#!,:{};这些标点不能出现在{}这里面。
#print(f'{;12}')#报错
#所以使用lambda表达式会出现一些问题。
#解决方式:可将lambda嵌套在圆括号里面解决此问题。
x=5
print(f'{(lambdax:x*2)(x)}')#10
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。