用最简单的话来讲,格式化输出 = 先定模板 + 再填数据
比如,很多奖状模板都是固定的,只需要填几个空就行。
再比如,考试答题卡的信息区格式也是固定的。
有了这样的模板,我们就可以按照提示,把需要填写的内容填进去就行了。
那在输出很多字符串的时候,能不能也把这个模板做好,然后把需要填写的字符串变量填进去呢?
当然可以。
这就是字符串的格式化输出。
还是以奖状模板为例,制作奖状模板很简单,就两步:
第一步:把要输出的文字写出来(比如下图中的所有文字)
第二步:把会变的部分用下划线标识出来,占个位置
制作字符串模板也非常类似,分成四步:
第一步:把要输出的文字写出来
第二步:把会变的部分用 { } 占个位置
第三步:在{}占位符中填入对应的变量
第四步:在字符串前面加个 f
还是输出学生信息为例

正常输出的结果是:
第一步:把要输出的文字写出来,当然需要用引号引起来
"姓名:,得分:,身高:,城市:"
第二步:把会变的部分用 { } 占个位置,{}也称为占位符
"姓名:{},得分:{},身高:{},城市:{}"
第三步:在{}占位符中填入对应的变量
"姓名:{name},得分:{score},身高:{height},城市:{city}"
第四步:在字符串前面加个 f,表示这是一个格式化字符串(f-string)。
最后就可以用print输出这个字符串了,如下图所示:
比较一下最后两个print语句,输出结果一样,是不是字符串格式化输出更加方便简洁?