# Python 的"格式化输出"

# 缘起

打印字符串是编程中经常需要处理的任务, 看路飞学院的视频了解到Python的"格式化输出"功能.

它可以高效地打印多个字符串, 并且进行美化.

# 定义

"字符串的格式化输出"就是预先制定一个模版, 在这个模版中先空出后续需要输入的内容, 最后, 再将内容填充到这些空出的位置.

那么, 如何让计算机知道哪些位置是需要填写内容的呢?

那么, 就需要约定一些特殊的符号, 标记这些位置. 这些特殊符号被称为"占位符" (很形象, 占住位置. 就像大学图书馆经常看到的, 桌子上放本书, 宣示这个座位已经有人占了)

看一个简单的例子:

print('这款 %s 的售价是 %d 元' % ('iPhone', 4600))
1

输出结果是

这款 iPhone 的售价是 4600 元
1

其中, %s%d 是占位符 (%s表示后续要填入的是 String / 字符串, %d 表示后续要填入的是 digit / 整数), 而后面的 ('iPhone', 4600) 则会会在打印时分别填入 %s%d 所处的位置

# 格式化输出的 3 种方式

# 1. 最经典

也就是之前那个例子

print('这款 %s 的售价是 %d 元, 我爱 %s.' % ('Mac', 13000, 'Mac'))
1

输出结果是:

这款 Mac 的售价是 13000 元, 我爱 Mac.
1

常用的占位符:

占位符 指代
%s string / 字符串
%d digit / 整数
%f float / 浮点数
%.2f float / 浮点数, 保留 2 位小数
%r raw / 原生的数据 (调试用)

# 2. 字典

my_dic = {
	'name': 'Mac',
	'price': 13000
}
print('这款 %(name)s 的售价是 %(price)d 元, 我爱 %(name)s.' % my_dic)
1
2
3
4
5

输出:

这款 Mac 的售价是 13000 元, 我爱 Mac.
1

# 3. format 函数

print('这款 {0} 的售价是 {1} 元, 我爱 {0}.'.format('Mac', 13000))
1

输出结果是:

print('这款 {0} 的售价是 {1} 元, 我爱 {0}.'.format('Mac', 13000))
1

注意:

  • {}里面的序号和 format()里面的内容顺序是对应的, 而且{}里面的序号是从 0 开始的
  • {}里面也可以不写数字, 那么 {} 的数量和format()里面的内容数量要一致:
print('这款 {} 的售价是 {} 元, 我爱 {}.'.format('Mac', 13000, 'Mac'))
1

输出为:

这款 Mac 的售价是 13000 元, 我爱 Mac.
1

# 参考文章