上一篇介绍了格式化输出的古典模式,本篇介绍另一种较新的格式化输出方式,功能强大的format模式。
首先,还是上篇的例子
name = "Jim"
age = 18
height = 180
print("My name is {}, I'm {}-year-old and my height is {} cm.".format(name, age, height))
打印结果为:
My name is Jim, I'm 18-year-old and my height is 180 cm.
本例中,格式化输出字符串中使用**{}**为变量预留位置,不必考虑变量的类型,字符串后紧跟.format,然后在小括号中按顺序加入对应的变量。
name = "Jim"
age = 18
height = 1.80
print("My name is {}, I'm {}-year-old and my height is {:.2f} m.".format(name, age, height))
打印结果为:
My name is Jim, I'm 18-year-old and my height is 1.80 m.
本例中,:.2f实现了浮点数保留小数点后两位。
**{}**中还可以加入序列号,0对应第一个变量,1对应第二个,依次类推,请看下面的例子。
name = "Jim"
age = 18
height = 1.80
print("My name is {0}, I'm {1}-year-old and my height is {2:.2f} m.".format(name, age, height))
打印结果与上一例相同,这里显得多此一举。但有些情境下,有序列号会使程序简洁许多,请继续往下看。
歌曲《灞波儿奔奔波儿灞》的歌词:
我是灞波儿奔
他是奔波儿灞
灞波儿奔奔波儿灞
两个快乐小妖怪
人见人爱美如花
我是奔波儿灞
他是灞波儿奔
灞波儿奔奔波儿灞
两个快乐小妖怪
宝塔里面藏起来
喝喝酒,吹吹牛
自由自在乐逍遥
快活似神仙
唐僧真讨厌
扫塔到身边
孙猴子法力无边
唐僧唐僧救命啊
快把紧箍咒儿念
print('''
我是{0}
他是{1}
{0}{1}
两个快乐小妖怪
人见人爱美如花
我是{1}
他是{0}
{0}{1}
两个快乐小妖怪
宝塔里面藏起来
喝喝酒,吹吹牛
自由自在乐逍遥
快活似神仙
{2}真讨厌
扫塔到身边
孙猴子法力无边
{2}{2}救命啊
快把紧箍咒儿念
'''.format("灞波儿奔", "奔波儿灞", "唐僧"))
使用上面的程序,可以把歌词完整打印出来,并且还可以设置人名。