标签:参数 ant python 3.1 ret 模式 引用 orm 格式
python从2.6开始支持format,新的更加容易读懂的字符串格式化方法,
从原来的% 模式变成新的可读性更强的
- 花括号声明{}、用于渲染前的参数引用声明, 花括号里可以用数字代表引用参数的序号, 或者 变量名直接引用。
- 从format参数引入的变量名 、
- 冒号:、
- 字符位数声明、
- 空白自动填补符 的声明
- 千分位的声明
- 变量类型的声明: 字符串s、数字d、浮点数f
- 对齐方向符号 < ^ >
- 属性访问符中括号 ?
- 使用惊叹号!后接a 、r、 s,声明 是使用何种模式, acsii模式、引用__repr__ 或 __str__
- 增加类魔法函数__format__(self, format) , 可以根据format前的字符串格式来定制不同的显示, 如: ’{:xxxx}’ 此时xxxx会作为参数传入__format__函数中。
综合举例说明:
- 如: 千分位、浮点数、填充字符、对齐的组合使用:
输入: ‘{:>18,.2f}‘.format(70305084.0) # :冒号+空白填充+右对齐+固定宽度18+浮点精度.2+浮点数声明f
输出:‘ 70,305,084.00‘
- 复杂数据格式化
输入: data = [4, 8, 15, 16, 23, 42]
‘{d[4]} {d[5]}‘.format(d=data)
输出: 23 42
- 复杂数据格式化:
输入:
class Plant(object):
type = ‘tree‘
kinds = [{‘name‘: ‘oak‘}, {‘name‘: ‘maple‘}]
‘{p.type}: {p.kinds[0][name]}‘.format(p=Plant())
输出:tree: oak
分类举例说明:
- 花括号声明{}、用于渲染前的参数引用声明, 花括号里可以用数字代表引用参数的序号, 或者 变量名直接引用。
‘{} {}‘.format(‘one‘, ‘two‘)
‘{1} {0}‘.format(‘one‘, ‘two‘)
Output
Setup
data = {‘first‘: ‘Hodor‘, ‘last‘: ‘Hodor!‘}
Old
‘%(first)s %(last)s‘ % data
New
‘{first} {last}‘.format(**data)
- 冒号:、字符位数声明、空白自动填补符 的声明、千分位的声明、变量类型的声明: 字符串s、数字d、浮点数f 、对齐方向符号 < ^ >
‘{:.5}‘.format(‘xylophone‘)
‘{:.{}}‘.format(‘xylophone‘, 7)
‘{:06.2f}‘.format(3.141592653589793)
千分位、浮点数、填充字符、对齐的组合使用:
输入: ‘{:>18,.2f}‘.format(70305084.0) # :冒号+空白填充+右对齐+固定宽度18+浮点精度.2+浮点数声明f
输出:‘ 70,305,084.00‘
Setup
person = {‘first‘: ‘Jean-Luc‘, ‘last‘: ‘Picard‘}
New
‘{p[first]} {p[last]}‘.format(p=person)
Setup
data = [4, 8, 15, 16, 23, 42]
New
‘{d[4]} {d[5]}‘.format(d=data)
Setup
class Plant(object):
type = ‘tree‘
kinds = [{‘name‘: ‘oak‘}, {‘name‘: ‘maple‘}]
New
‘{p.type}: {p.kinds[0][name]}‘.format(p=Plant())
Setup
class Data(object):
def __str__(self):
return ‘str‘
def __repr__(self):
return ‘repr‘
Old
‘%s %r‘ % (Data(), Data())
New
‘{0!s} {0!r}‘.format(Data())
- 增加类魔法函数__format__(self, format) , 可以根据format前的字符串格式来定制不同的显示, 如: ’{:xxxx}’ 此时xxxx会作为参数传入__format__函数中。
Setup
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‘
New
‘{:open-the-pod-bay-doors}‘.format(HAL9000())
Output
I‘m afraid I can‘t do that.
Setup
from datetime import datetime
New
‘{:%Y-%m-%d %H:%M}‘.format(datetime(2001, 2, 3, 4, 5))
python字符串格式化方法 format函数的使用
标签:参数 ant python 3.1 ret 模式 引用 orm 格式
原文地址:https://www.cnblogs.com/huohuohuo1/p/9157766.html