前面的文章中,我们用print打印了字符串、整数和浮点数,但是远没有发挥出print的本领,本文初步介绍一下经典而又古朴的格式化输出:%模式,此模式和C语言很相似。
name = "Jim"
print("My name is %s" % name)
打印结果为:
My name is Jim
程序中%s是一个格式占位符,代表此位置是一个字符串类型,为其预留位置,第二个%后面是要打印的具体的字符串,与%s对应。
name = "Jim"
age = 18
height = 180
print("My name is %s, I'm %d-year-old and my height is %d cm." %(name, age, height))
打印结果为:
My name is Jim, I'm 18-year-old and my height is 180 cm.
上面的例子中,年龄和身高都是整数,用%d进行占位,由于语句中有多个变量,所以后面的name, age, height要用小括号括起来。在格式化字符串中,%s代表字符串,%d代表整数,%f代表浮点数。下面,再尝试一下浮点数的格式化输出
name = "Jim"
age = 18
height = 1.80
print("My name is %s, I'm %d-year-old and my height is %f m." %(name, age, height))
打印结果为:
My name is Jim, I'm 18-year-old and my height is 1.800000 m.
不难发现,身高这个浮点数精确到了小数点后6位,显然这不是我们想要的结果,应该是1.80才对,需要对%f进行进一步限制。
name = "Jim"
age = 18
height = 1.80
print("My name is %s, I'm %d-year-old and my height is %.2f m." %(name, age, height))
打印结果为:
My name is Jim, I'm 18-year-old and my height is 1.80 m.
可见,把%f改为%.2f之后,身高结果就是1.80了,如果想保留小数点后1位,改为%.1f即可。