返回介绍

添加具体格式化

发布于 2024-01-29 22:24:17 字数 2017 浏览 0 评论 0 收藏 0

另一种和%表达式类似的是,可以在格式化字符串中添加额外的语法来实现更具体的层级。对于格式化方法,我们在替换目标的标识之后使用一个冒号,后面跟着可以指定字段大小、对齐方式和一个特定类型编码的格式化声明。如下是可以在一个格式字符串中作为替代目标出现的形式化结构:

在这个替代目标语法中:

·fieldname是指定参数的一个数字或关键字,后面跟着可选的".name"或"[index]"成分引用。

·Conversionflag可以是r、s,或者a分别是在该值上对repr、str或ascii内置函数的一次调用。

·Formatspec指定了如何表示该值,包括字段宽度、对齐方式、补零、小数点精度等细节,并且以一个可选的数据类型编码结束。

冒号后的formatspec组成形式上的描述如下(方括号表示可选的组成,并且不能编写为常量):

align可能是<、>、=或^,分别表示左对齐、右对齐、一个标记字符后的补充或居中对齐。Formatspec也包含嵌套的、只带有{}的格式化字符串,它从参数列表动态地获取值(和格式化表达式中的*很相似)。

参见Python的库手册可以了解关于替换语法的更多信息和可用的类型编码的列表,它们几乎与前面表7-4中列出的以及%表达式中使用的那些完全重合,但是格式化方法还允许一个"b"类型编码用来以二进制格式显示整数(它等同于使用bin内置函数),允许一个“%”类型编码来显示百分比,并且使用唯一的"d"表示十进制的整数(而不是"i"或"u")。

例如,下面的{0:10}意味着一个10字符宽的字段中的第一个位置参数,{1:<10}意味着第2个位置参数在一个10字符宽度字段中左对齐,{0.platform:>10}意味着第一个参数的platform属性在10字符宽度的字段中右对齐:

在格式化方法调用中,浮点数支持与%表达式中相同的类型代码和格式化声明。例如,下面的{2:g}表示,第三个参数默认地根据"g"浮点数表示格式化,{1:.2f}指定了带有2个小数位的"f"浮点数格式,{2:06.2f}添加一个6字符宽度的字段并且在左边补充0:

格式化方法也支持十六进制、八进制和二进制格式。实际上,字符串格式化是把整数格式化为指定的进制的某些内置函数的替代方法:

格式化参数可以在格式化字符串中硬编码,或者通过嵌套的格式化语法从参数列表动态地获取,后者很像是格式化表达式中的星号语法:

最后,Python 2.6和Python 3.0还提供了一种新的内置format函数,它可以用来格式化一个单独的项。它是字符串格式化方法的一种更简洁的替代方法,并且大致类似于用%格式化表达式来格式化一个单独的项:

从技术上讲,内置函数format运行主体对象的__format__方法,对于每个被格式化项目,str.format方法都是内部的。它仍然比最初的%表达式的对等体要冗长,这引发了我们在下一小节中讨论的话题。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文