Python: 字符串格式化format()函数的使用
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'
>>>
>>> '{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()函数的使用的更多相关文章
- Python第二天 变量 运算符与表达式 input()与raw_input()区别 字符编码 python转义符 字符串格式化 format函数字符串格式化 帮助
Python第二天 变量 运算符与表达式 input()与raw_input()区别 字符编码 python转义符 字符串格式化 format函数字符串格式化 帮助 目录 Pychar ...
- Python3之字符串格式化format函数详解(上)
概述 在Python3中,字符串格式化操作通过format()方法或者f’string’实现.而相比于老版的字符串格式化方式,format()方法拥有更多的功能,操作起来更加方便,可读性也更强.该函数 ...
- python3字符串格式化format()函数的简单用法
format()函数 """ 测试 format()函数 """ def testFormat(): # format()函数中有几个元素, ...
- python 字符串格式化—format
Python2.6 开始,新增了一种格式化字符串的函数 str.format().使用起来简单方便,不会遇到使用%时候格式的选择问题. 按照参数默认顺序 >>> "yesd ...
- Python3之字符串格式化format函数详解(下)
格式限定符 format通过丰富的的“格式限定符”(语法是 {}中带:号)对需要格式的内容完成更加详细的制定. 进制转换 我们可以再限定符中制定不同的字符对数字进行进制转换的格式化,进制对应的表格: ...
- python 字符串格式化format
通过{}和:来代替传统%方式 1.位置参数 位置参数不受顺序约束,且可以为{},只要format里有相对应的参数值即可,参数索引从0开,传入位置参数列表可用*列表 >>> li ...
- python 字符串格式化 format
用法: 它通过{}和:来代替传统%方式 1.使用位置参数 要点:从以下例子可以看出位置参数不受顺序约束,且可以为{},只要format里有相对应的参数值即可,参数索引从0开,传入位置参数列表可用*列表 ...
- Python字符串格式化--format()方法
https://blog.csdn.net/i_chaoren/article/details/77922939 csdn
- python字符串格式化 %操作符 {}操作符---总结
Python字符串格式化 (%占位操作符) 在许多编程语言中都包含有格式化字符串的功能,比如C和Fortran语言中的格式化输入输出.Python中内置有对字符串进行格式化的操作 %. 模板 格式化字 ...
随机推荐
- java高级---->Thread之Exchanger的使用
Exchanger可以在两个线程之间交换数据,只能是2个线程,他不支持更多的线程之间互换数据.今天我们就通过实例来学习一下Exchanger的用法. Exchanger的简单实例 Exchanger是 ...
- Python 导入与注册
背景 最近一直学习写一个POC扫描框架,但是不知道如何下手,正巧因为一些需要有朋友在研究POCSuite的实现原理,顺面蹭一些知识点,补一补Python基础的不足,为以后编写POC框架打地基. 导入 ...
- 真机远程页面调试工具spy-debugger 3.x:集成weinre+AnyProxy,页面调试+抓包。调试生产HTTPS页面。
.页面调试+抓包 2.操作简单 3.支持HTTPS. 4.spy-debugger内部集成了weinre.node-mitmproxy.AnyProxy. 5.自动忽略原生App发起的https请求, ...
- java后端技术栈
- 查看Oracle的redo日志切换频率
1.Oracle log 每次切换会记录到告警日志中 设想写个方案来查看log切换频率来判断Oracle log是否应该更改大小. 2.sql a.查看redo日志信息 select * from v ...
- 最小费用流判负环消圈算法(poj2175)
Evacuation Plan Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 3384 Accepted: 888 ...
- Comparable 与 Comparator的区别
Comparable & Comparator 都是用来实现集合中元素的比较.排序的,只是 Comparable 是在集合内部定义的方法实现的排序,Comparator 是在集合外部实现的排序 ...
- 分区实践 A PRIMARY KEY must include all columns in the table's partitioning function
MySQL :: MySQL 8.0 Reference Manual :: 23 Partitioning https://dev.mysql.com/doc/refman/8.0/en/parti ...
- Python开发【整理笔记】
回顾笔记 学python半年,新知识不断填充,之前学的东西也忘的差不多,整理下笔记,把重点再加深下印象,算是读书拾遗吧.... 1.类继承.新式类.经典类 首先,新式类.经典类的概念只存在于Pytho ...
- java-mybaits-00202-DAO-原始DAO开发方法
原始Dao开发方法需要程序员编写Dao接口和Dao实现类. 原本的ibatis的 需要在dao实现类中注入一个SqlSessionFactory工厂. 1.思路 程序员需要写dao ...