Python字符串格式化

python format()返回值是字符串

def format(self, *args, **kwargs): # known special case of str.format
    """
    S.format(*args, **kwargs) -> string

    Return a formatted version of S, using substitutions from args and kwargs.
    The substitutions are identified by braces ('{' and '}').
    """
    pass

基础用法

In [32]: "{}={}".format('a',10)
Out[32]: 'a=10'

使用关键字,也可通过类似下标指定对应参数

In [31]: "{key}={value}".format(key='a',value=10)
Out[31]: 'a=10'

In [33]: "{first} {second} {first}".format(first=1,second=2)
Out[33]: '1 2 1'

In [35]: "{0} {1} {0}".format(1,2)
Out[35]: '1 2 1'

列表

In [34]: 'the second value {0[2]}'.format(range(10))
Out[34]: 'the second value 2'

字典

In [36]: print "{0[a]} {1[b]}".format(dict(a=10),dict(b=110))
10 110

<, 左对齐
^ 居中
,> 右对齐


In [39]: '[{0:<10}],[{0:^10}],[{0:*>10}]'.format('a')
Out[39]: '[a         ],[    a     ],[*********a]'
#默认填充是空格,也可以用其他的符号来代替

%r 调用 rper函数打印字符串,repr函数返回的字符串是加上了转义序列,是直接书写的字符串的形式

%s 调用 str函数打印字符串,str函数返回原始字符串

In [42]: '{0!r:20}'.format('Hello')
Out[42]: "'Hello'             "

In [43]: '{0!s:20}'.format('Hello')
Out[43]: 'Hello               '

In [46]: class Data(object):
    ...:     def __str__(self):
    ...:         return 'str'
    ...:     def __repr__(self):
    ...:         return 'repr'
    ...:

In [47]: '{0!s} {0!r}'.format(Data())
Out[47]: 'str repr'

时间格式

In [44]: from datetime import datetime
In [45]: "Today is :{0:%a %b %d %H:%M:%S %Y}".format(datetime.now())
Out[45]: 'Today is :Tue Nov 29 19:16:13 2016'

class类型


In [2]: class a():
   ...:     age =18
   ...:     name = 'Tim'
   ...:

In [3]: 'My name is {a.name},Age is {a.age}'.format(a=a())
Out[3]: 'My name is Tim,Age is 18'

dict类型

In [4]: a_dict = {'name':'Tim'}

In [5]: "My name is {a_dict[name]}".format(a_dict=a_dict)
Out[5]: 'My name is Tim'

多使用format()方法,少使用print()
(于2016年11月29日,http://blog.youkuaiyun.com/bzd_111

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值