format()使用学习

来源:互联网 发布:灵枢针灸免费网络课 编辑:程序博客网 时间:2024/06/01 10:40

Python2.6以后,新增了一种字符串格式化输出函数 str.format(),非常简单方便。

语法:
通过 {}来替代 %

使用简介:

  • 1、 通过位置:
    这里的位置是指format() 中参数的位置,0 表示第一个位置的参数,1 表示第二个位置的参数,以此类推。
In [1]: '{0},{1}'.format('kzc',18) Out[1]: 'kzc,18'In [2]: '{},{}'.format('kzc',18) Out[2]: 'kzc,18'In [3]: '{1},{0},{1}'.format('kzc',18) Out[3]: '18,kzc,18'

字符串的format函数可以接受不限个参数,位置可以不按顺序,可以不用或者用多次,不过2.6不能为空{},2.7才可以。

  • 2、通过关键字参数
    通过format() 中的参数名,或者字典中的键值来指定,这种方式比通过位置来指定要好,因为只有0,1,2这些数字可能会让人搞混。
In [5]: '{name},{age}'.format(age=18,name='kzc') Out[5]: 'kzc,18'In [5] : "{0[name]} is {0[age]} years old.".format({"name":"lili","age":12})Out[5] : lili is 12 years old.
  • 3、通过对象属性
class Person:   def __init__(self,name,age):     self.name,self.age = name,age   def __str__(self):     return 'This guy is {self.name},is {self.age} old'.format(self=self) In [2]: str(Person('kzc',18)) Out[2]: 'This guy is kzc,is 18 old'
  • 4、通过下标
    这个是在list 中用到的。
In [7]: p=['kzc',18]In [8]: '{0[0]},{0[1]}'.format(p)Out[8]: 'kzc,18'
  • 5、格式限定符
    format()函数还有非常丰富的格式限定符,其语法是:在{} 中带 :
    比如:填充与对齐,填充与对齐经常一起使用。
    ^、<、> 分别表示居中、左对齐、右对齐,该符号后面可以带上宽度。
    : 号后面是填充的字符,注意只能是一个字符,不指定的话,默认是用空格填充。
In [15]: '{:>8}'.format('189')Out[15]: '   189'In [16]: '{:0>8}'.format('189')Out[16]: '00000189'In [17]: '{:a>8}'.format('189')Out[17]: 'aaaaa189'
  • 6、精度与类型f

精度常跟类型 f 一起使用

In [44]: '{:.2f}'.format(321.33345)Out[44]: '321.33'

其中.2表示长度为2的精度,f表示float类型。
还有其他类型,主要就是进制了,b、d、o、x分别是二进制、十进制、八进制、十六进制。

In [54]: '{:b}'.format(17)Out[54]: '10001'In [55]: '{:d}'.format(17)Out[55]: '17'In [56]: '{:o}'.format(17)Out[56]: '21'In [57]: '{:x}'.format(17)Out[57]: '11'
  • 7、用 号还能用来做金额的千位分隔符。
In [47]: '{:,}'.format(1234567890)Out[47]: '1,234,567,890'
  • 8、运行时动态指定浮点数精度:
>>> for i in range(5):  ...  print('%.*f' % (i, 1.234234234234234))  ...   '1'  '1.2'  '1.23'  '1.234'  '1.2342'

还可以这样实现:

>>> for i in range(5):  ...   print('{0:.{1}f}'.format(1 / 3.0, i)  )...   '0'  '0.3'  '0.33'  '0.333'  '0.3333'  

(说明:本文大部分内容是下面博客的,其中加入了我自己的理解,以及还有其他相关的知识。)

参考:
http://www.cnblogs.com/dplearning/p/5702008.html

0 0
原创粉丝点击