Python学习之format函数的使用
Posted #忘乎所以#
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python学习之format函数的使用相关的知识,希望对你有一定的参考价值。
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\'}]
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
two one
Setup
data = {\'first\': \'Hodor\', \'last\': \'Hodor!\'}
Old
\'%(first)s %(last)s\' % data
New
\'{first} {last}\'.format(**data)
Output
Hodor Hodor!
- 从format参数引入的变量名 、
- 冒号:、字符位数声明、空白自动填补符 的声明、千分位的声明、变量类型的声明: 字符串s、数字d、浮点数f 、对齐方向符号 < ^ >
\'{:.5}\'.format(\'xylophone\')
Output
xylop
\'{:^10}\'.format(\'test\')
Output
test
\'{:.{}}\'.format(\'xylophone\', 7)
Output
xylopho
\'{:4d}\'.format(42)
Output
42
\'{:06.2f}\'.format(3.141592653589793)
Output
003.14
\'{:+d}\'.format(42)
Output
+42
千分位、浮点数、填充字符、对齐的组合使用:
输入: \'{:>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)
Output
Jean-Luc Picard
Setup
data = [4, 8, 15, 16, 23, 42]
New
\'{d[4]} {d[5]}\'.format(d=data)
Output
23 42
Setup
class Plant(object): type = \'tree\' kinds = [{\'name\': \'oak\'}, {\'name\': \'maple\'}]
New
\'{p.type}: {p.kinds[0][name]}\'.format(p=Plant())
Output
tree: oak
- 惊叹号!限定访问__repr__等魔法函数:
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())
Output
str repr
- 增加类魔法函数__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))
Output
2001-02-03 04:05
以上来自https://www.cnblogs.com/ToDoToTry/p/5635863.html,在此记录,以便日后学习。
以上是关于Python学习之format函数的使用的主要内容,如果未能解决你的问题,请参考以下文章