在Python 3.6之前,主要有两种将Python表达式嵌入字符串文本中进行格式化的方法:%-formatting和str.format()。在Python 3.6及其后续版本中,可使用f字符串进行字符串格式化。下面一一进行介绍。
下列代码演示传统的%-formatting的用法,源代码见code\2\formatting.py。
name="雯雯" age=8 print("你的姓名:%s"%name) print("你的姓名:%s,你的年龄:%s"%(name,age))
代码的执行结果如下。
你的姓名:雯雯 你的姓名:雯雯,你的年龄:8
当使用多个参数或字符串更长时,代码将变得不太容易阅读。
str.format()方法是对%-formatting方法的改进。使用str.format()方法替换字段时,用大括号标记。通过下列代码演示str.format()的用法,源代码见code\2\str_format.py。
1 name="雯雯" 2 age=8 3 print("你的姓名:{} ".format(name)) 4 print("你的姓名:{},你的年龄:{}".format(name,age))
代码的执行结果与第一种方式的一致,这里不再赘述。
使用str.format()方法的代码比使用%-formatting方法的代码更易读,但处理多个参数或更长的字符串时,代码仍然可能非常冗长。
f字符串也称为“格式化字符串文字”,意思是开头有一个f的字符串文字,包含表达式的大括号将被其值替换。
下列代码演示f字符串的用法,源代码见code\2\f-strings.py。
1 name="雯雯" 2 age=8 3 print(f"你的姓名:{name}") 4 print(f"你的姓名:{name},你的年龄:{age}")
代码的执行结果与上述两种方式的一致。其中,第3、4行代码执行后,大括号内的表达式将被具体的值替换。f字符串用起来更加简单,推荐使用。