1、python格式化输出历史起源
python2.5之前,我们使用的是老式格式化输出:%s。从python3.0开始起(python2.6同期发布),同时支持两个版本的格式化,多出来的一个新版本就是利用format()函数,进行格式化输出。
2、为什么要学习python3支持的新式格式化输出呢?
虽然老式的语法,兼容性很好,但是它的功能很少,很难完成复杂的任务,而format()函数进行格式化输出,功能更加强大,从下面的学习中你会慢慢体会到。
3、基本用法
a = "%s张飞%s关羽%s刘备%s赵云" % (1,2,3,4) display(a) b = "{}张飞{}关羽{}刘备{}赵云".format(1,2,3,4) display(b)
结果如下:
1)format()支持位置格式化填充,%s不支持;
第一种方式:大括号{ }中写的是format()传入值所对应的下标。
第二种方式:大括号{ }中的变量,和format()传入值是一一对应的。
# --------------------方式一----------------------- c = "{3}张飞{1}关羽{2}刘备{0}赵云".format(1,2,3,4) display(c) # --------------------方式二----------------------- def my_hobbies(fruit,ball,drink): hobbies = "我喜欢水果{fruit},我也喜欢球类{ball},我还喜欢饮料{drink}".format(ball=ball,fruit=fruit,drink=drink) return hobbies fruit = "apple" ball = "basketball" drink = "milk" my_hobbies(fruit,ball,drink) # --------------------方式二----------------------- fruit = "apple" ball = "basketball" drink = "milk" hobbies = "我喜欢水果{fruit},我也喜欢球类{ball},我还喜欢饮料{drink}".format(ball=ball,fruit=fruit,drink=drink) display(hobbies)
结果如下:
4、填充和对齐
1)填充(只能用一个字符进行填充)
① 什么是填充?
概念:当指定了字符串最终的长度,但是现有的字符串没有那么长,那么我们就用某种字符(填充字符)来填满至这个长度,这就是“填充”。
② %s:实现填充功能;
a = "%s" % ("张飞") display(a) b = "%10s" % ("张飞") display(b)
结果如下:
③ format():实现填充功能;
c = "{}".format("张飞") display(c) d = "{:10}".format("张飞") display(d)
结果如下:
总结如下:通过上述案例结果呈现,当使用的是%s,进行字符串填充的时候,默认是在原字符串左侧进行填充;当使用的是format(),进行字符串填充的时候,默认是在原字符串右侧进行填充。这就是我们下面要讲述的"对齐"。
2)对齐
① 什么是对齐?
概念:"对齐"要与"填充"一起使用,才会显得有意义。当我们进行填充的时候,我们可以选择只在字符串左侧填充,也可以选择只在字符串右侧填充,还可以选择在字符串两侧填充(字符串居中显示的填充方式)。
② %s:实现对齐功能,只有左对齐和右对齐;
# 左填充 a = '%10s' % ('张飞') display(a) # 右填充 b = '%-10s' % ('张飞') display(b)
结果如下:
③ format():实现对齐功能,不仅有左对齐和右对齐,还有居中对齐;
# 左填充 a = '{:>10}'.format('张飞') display(a) # 右填充 b = '{:<10}'.format('张飞') display(b) # 居中填充 c = '{:^10}'.format('张飞') display(c)
结果如下:
④ 使用"特定符号"进行填充;
旧版语法中(%s),使用"特定符号"填充,很麻烦,不直接,你也不用去管。这里主要看新版语法中(format()函数),进行"特定符号"填充。