format()使用学习

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值