水深 发表于 2018-7-18 10:52:07

format用法

rt

night119110 发表于 2018-7-18 13:28:00

本帖最后由 night119110 于 2018-7-18 14:20 编辑

感觉和%s有点相似吧,

>>> '{0}同学在本次考试中成绩提升了 {1:.2f}%'. format('李雷', 10.26643)
'李雷同学在本次考试中成绩提升了 10.27%'

>>> '在本次考试中成绩提升了 {1:.2f}% 的同学有{0}同学'. format('李雷', 10.26643)
'在本次考试中成绩提升了 10.27% 的同学有李雷同学'

和%有一点不同的就是替代的顺序可以调换,主要是以{}来分辨用那一个元素来填充
我们可以把format视为一个列表,用索引的方式来实现元素填充{0}就是使用format中的第一个元素,{1}就是使用format中第二个元素

当然,元素也可以不受限制次数的调用,例子如下:

>>> "{1} {0} {1}".format("hello", "world")
'world hello world'

还可以先建立一个包含内容的列表,然后用format来实现调用

>>> list = ['李雷', 10.26643]
>>> '在本次考试中成绩提升了 {0:.2f}% 的同学有{0}同学'. format(list)
'在本次考试中成绩提升了 10.27% 的同学有李雷同学'

下面是在网上找的表格,对照看一下估计就明白了

format(数字)          格式        输出                      描述
3.1415926        {:.2f}        3.14                   保留小数点后两位
3.1415926        {:+.2f}        +3.14             带符号保留小数点后两位
-1                     {:+.2f}        -1.00             带符号保留小数点后两位
2.71828                 {:.0f}        3                   不带小数
5                       {:0>2d}        05                   数字补零 (填充左边, 宽度为2)
5                       {:x<4d}        5xxx             数字补x (填充右边, 宽度为4)
10                       {:x<4d}        10xx             数字补x (填充右边, 宽度为4)
1000000                   {:,}        1,000,000   以逗号分隔的数字格式
0.25                      {:.2%}        25.00%             百分比格式
1000000000        {:.2e}        1.00e+09             指数记法
13                      {:10d}                    13   右对齐 (默认, 宽度为10)
13                       {:<10d}        13                   左对齐 (宽度为10)
13                       {:^10d}              13             中间对齐 (宽度为10)
       
'{:b}'.format(11)       11的二进制       1011
'{:d}'.format(11)       11的十进制       11
'{:o}'.format(11)       11的八进制       13
'{:x}'.format(11)       11的十六进制    b

^, <, > 分别是居中、左对齐、右对齐,后面带宽度, : 号后面带填充的字符,只能是一个字符,不指定则默认是用空格填充。
+ 表示在正数前显示 +,负数前显示 -;(空格)表示在正数前加空格
b、d、o、x 分别是二进制、十进制、八进制、十六进制。
页: [1]
查看完整版本: format用法