python从2.6开始支持format,新的更加容易读懂的字符串格式化方法,从原来的% 模式变成新的可读性更强的

    花括号声明{}、用于渲染前的参数引用声明, 花括号里可以用数字代表引用参数的序号, 或者 变量名直接引用。
从format参数引入的变量名 、
冒号:、
字符位数声明、
空白自动填补符 的声明
千分位的声明
变量类型的声明: 字符串s、数字d、浮点数f
对齐方向符号 < ^ >
属性访问符中括号 ☐
使用惊叹号!后接a 、r、 s,声明 是使用何种模式, acsii模式、引用__repr__ 或 __str__
增加类魔法函数__format__(self, format) , 可以根据format前的字符串格式来定制不同的显示, 如: ’{:xxxx}’ 此时xxxx会作为参数传入__format__函数中。
 
 
举例说明:

①复杂数据格式化

>>> data=[4,8,15,16,23,42]
>>> '{d[4]}{d[5]}'.format(d=data)
'2342'
>>>

②复杂数据格式化:

>>> class Plant(object):
... type='tree'
... kinds=[{'name':'oak'},{'name':'maple'}]
...
>>> '{p.type}:{p.kinds[0][name]}'.format(p=Plant())
'tree:oak'
>>>
③分类举例说明,
      花括号声明{}、用于渲染前的参数引用声明, 花括号里可以用数字代表引用参数的序号, 或者 变量名直接引用。
>>> '{}{}'.format('one','two')
'onetwo'
>>> '{1}{0}'.format('one','two')
'twoone'
>>>
 
 ④通过字典的key取value
>>> '{first}{last}'.format(**data)
'Hodorhordor!'
>>>

⑤从format参数引入的变量名 、冒号:、字符位数声明、空白自动填补符 的声明、千分位的声明、变量类型的声明: 字符串s、数字d、浮点数f 、对齐方向符号 < ^ >

>>> '{first}{last}'.format(**data)
'Hodorhordor!'
>>> '{:.5}'.format('xylophone')
'xylop'
>>> '{:^10}'.format('test')
' test '
>>> '{:.{}}'.format('xylophone',7)
'xylopho'
>>> '{:4d}'.format(42)
' 42'
>>> '{:6.2f}'.format(3.1415926)
' 3.14'
>>> '{:06.2f}'.format(3.1415926)
'003.14'
>>>
⑥千分位、浮点数、填充字符、对齐的组合使用:
>>> '{:>18,.2f}'.format(70305084.0)
' 70,305,084.00'
>>> '{:>18.2f}'.format(70305084.0)
' 70305084.00'
>>>

⑦属性访问符中括号 ☐

>>> '{p[first]} {p[last]}'.format(p=person)
'Jean-Luc Picard'
>>>

⑧惊叹号!限定访问__repr__等魔法函数:

>>> class Data(object):
... def __str__(self):
... return 'str'
... def __repr__(self):
... return 'repr'
...
>>> '{0!s}{0!r}'.format(Data())
'strrepr'
>>>

⑨增加类魔法函数__format__(self, format) , 可以根据format前的字符串格式来定制不同的显示, 如: ’{:xxxx}’  此时xxxx会作为参数传入__format__函数中。

>>> class HAL9000(object):
... def __format__(self,format):
... if(format == 'open-the-pod-bay-doors'):
... return "I'm afraid I can't do that"
... return 'HAL 9000'
...
>>> '{:open-the-pod-bay-doors}'.format(HAL9000())
"I'm afraid I can't do that"
>>>

⑩时间日期的特例:

>>> from datetime import datetime
>>> '{:%Y-%m-%d %H:%M}'.format(datetime(2001,2,3,4,5))
'2001-02-03 04:05'
>>>

Python: 字符串格式化format()函数的使用的更多相关文章

  1. Python第二天 变量 运算符与表达式 input()与raw_input()区别 字符编码 python转义符 字符串格式化 format函数字符串格式化 帮助

    Python第二天  变量  运算符与表达式  input()与raw_input()区别  字符编码  python转义符  字符串格式化  format函数字符串格式化  帮助 目录 Pychar ...

  2. Python3之字符串格式化format函数详解(上)

    概述 在Python3中,字符串格式化操作通过format()方法或者f’string’实现.而相比于老版的字符串格式化方式,format()方法拥有更多的功能,操作起来更加方便,可读性也更强.该函数 ...

  3. python3字符串格式化format()函数的简单用法

    format()函数 """ 测试 format()函数 """ def testFormat(): # format()函数中有几个元素, ...

  4. python 字符串格式化—format

    Python2.6 开始,新增了一种格式化字符串的函数 str.format().使用起来简单方便,不会遇到使用%时候格式的选择问题. 按照参数默认顺序 >>> "yesd ...

  5. Python3之字符串格式化format函数详解(下)

    格式限定符 format通过丰富的的“格式限定符”(语法是 {}中带:号)对需要格式的内容完成更加详细的制定. 进制转换 我们可以再限定符中制定不同的字符对数字进行进制转换的格式化,进制对应的表格: ...

  6. python 字符串格式化format

    通过{}和:来代替传统%方式   1.位置参数 位置参数不受顺序约束,且可以为{},只要format里有相对应的参数值即可,参数索引从0开,传入位置参数列表可用*列表 >>> li ...

  7. python 字符串格式化 format

    用法: 它通过{}和:来代替传统%方式 1.使用位置参数 要点:从以下例子可以看出位置参数不受顺序约束,且可以为{},只要format里有相对应的参数值即可,参数索引从0开,传入位置参数列表可用*列表 ...

  8. Python字符串格式化--format()方法

    https://blog.csdn.net/i_chaoren/article/details/77922939       csdn

  9. python字符串格式化 %操作符 {}操作符---总结

    Python字符串格式化 (%占位操作符) 在许多编程语言中都包含有格式化字符串的功能,比如C和Fortran语言中的格式化输入输出.Python中内置有对字符串进行格式化的操作 %. 模板 格式化字 ...

随机推荐

  1. m2014-architecture-imgserver->Lighttpd +mod_mem_cache的效果简直太好了

    公司的图片服务器一直以来负载都比较高,原因是图片比较分散而且比较小.经常把iowait搞的特别的高.但是只有一台机器也法用squid,经测试squid和apache在同一台机器效果会很糟糕的.因为sq ...

  2. 更改嵌入式Linux中开机画面----左上角小企鹅图标

    一直想给嵌入式仪表加个开机LOGO,但是没有找到更换的方法.最近在网上收集了一些文章,整理一下一共自己参考.目前也还没有试过这种方法究竟是否可以.但察看Kernel源代码可以知道,Linux-2.6的 ...

  3. 百度地图地址查询API使用

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgsAAALxCAIAAABdNHLmAAAgAElEQVR4nOy9/VMbZ5rvnf/hbM7zy3 ...

  4. 日记整理---->2016-11-22

    这里记录一些关于jquery的一些知识.这里面主要是$().method方法的书写框架以及jquery中each函数的使用.等待太久得来的东西,多半已经不是当初想要的样子了. 一.基于$().meth ...

  5. devstack with neutron 参考文献

    http://networkstatic.net/installing-openstack-ml2-neutron-plugin-devstack-fedora/ https://wiki.opens ...

  6. LeetCode——Min Stack

    Description: Design a stack that supports push, pop, top, and retrieving the minimum element in cons ...

  7. log4j和commons- logging(好文整理转载)

    一 :为什么同时使用commons-logging和Log4j?为什么不仅使用其中之一? Commons-loggin的目的是为 “所有的Java日志实现”提供一个统一的接口,它自身的日志功能平常弱( ...

  8. bootstrap之

    一.字体图标 <button type="button" class="btn btn-primary btn-lg"> <span clas ...

  9. [黑金原创教程] FPGA那些事儿《设计篇 III》- 图像处理前夕·再续

    简介 一本为入门图像处理的入门书,另外还教你徒手搭建平台(片上系统),内容请看目录. 注意 为了达到最好的实验的结果,请准备以下硬件. AX301开发板, OV7670摄像模块, VGA接口显示器, ...

  10. linux时间与Windows时间不一致的解决

    一.首先要弄清几个概念:1. “系统时间”与“硬件时间” 系统时间: 一般说来就是我们执行 date命令看到的时间,linux系统下所有的时间调用(除了直接访问硬件时间的命令)都是使用的这个时间.   ...