python有两种方式格式化字符串:
- %符号
- format函数
1 % 操作符,是将其他变量置入字符串特定位置以生成新字符串的操作,
格式如下:
%[(name)][flags][width].[precision]typecode
- (name) 为命名
- flags 可以有 +,-,' '或 0。+ 表示右对齐。- 表示左对齐。' ' 为一个空格,表示在正数的左侧填充一个空格,从而与负数对齐。0 表示使用 0 填充。
- width 表示显示宽度
- precision 表示小数点后精度
类型码:
%s 字符串 (采用str()的显示)
%r 字符串 (采用repr()的显示)
%c 单个字符
%b 二进制整数
%d 十进制整数
%i 十进制整数
%o 八进制整数
%x 十六进制整数
%e 指数 (基底写为e)
%E 指数 (基底写为E)
%f 浮点数
%F 浮点数,与上相同%g 指数(e)或浮点数 (根据显示长度)
%G 指数(E)或浮点数 (根据显示长度)
%% 字符"%"
实例1
>>> print ("%6.3f" % 3.6)
3.600
- 第一个 % 后面的内容为显示的格式说明,6 为显示宽度,3 为小数点位数,f 为浮点数类型
- 第二个 % 后面为显示的内容来源,输出结果右对齐,3.600 长度为 5,故前面有一空格
实例2
>>> print ("hello,%s %s" % ("world","!"))
hello,world !
2 format函数
Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能。
基本语法是通过 {} 和 :来代替以前的 % 。
format 函数可以接受不限个参数,位置可以不按顺序。
实例
>>> print ("hello,%s %s" % ("world","!"))#
hello,world !
>>> print "{},{}".format("hello","world")# 不设置指定位置,按默认顺序
hello,world
>>> print "{0},{1}".format("hello","world")# 设置指定位置
hello,world
>>> print "{1} {0} {1}".format("hello","world")# 设置指定位置
world hello world