Python格式化输出详解

在Python下我已知的可以用来格式化输出的方法有如下三种:

加号(+)的方式

百分号(%)的方式

format的方式

这两种方式在Python2和Python3中都适用,百分号方式是Python一直内置存在的,format方式为近期才出来的。

这3中方式在和中都可以使用,format方式是后来这居上的一种,现在好多人喜欢用,而加号「+」是最恶心的,后面介绍,百分号「%」的方式则是Python一直内置的。

format替换「%」说明:This PEP proposes a new system for built-in string formatting operations, intended as a replacement for the existing ‘%’ string formatting operator.

No.1 万恶的加号

Python中的字符串在C语言中体现为是一个字符数组,每次创建字符串时候需要在内存中开辟一块连续的空,并且一旦需要修改字符串的话,就需要再次开辟空间,万恶的+号每出现一次就会在内从中重新开辟一块空间,所以少用加号。

加号格式化示例如下:

运行测试结果如下:

提示: 「+」拼接只能是字符串,如果是整型、或者是浮点都会报错,这里就不演示了,有兴趣你可以自己试试。

No.2 内置的百分号

参数格式:

[(name)]: 可选,用于选择指定的key

[flags]: 可选,可供选择的值有:

[width]: 可选,占有宽度

.[precision]: 可选,小数点后保留的位数

typecode: 必选,参数如下:

:Python中百分号格式化是不存在自动将整数转换成二进制表示的方式

常用格式化示例:

「%s」字符串

字符串中出现%号的次数要与%之后所提供的数据项个数相同,如果需要插入多个数据,则需要将他们封装进一个元组。

%s传字符串或任何值甚至列表也可以, %d只能接收数字

给参数起一个名字,后面传值的时候必须是一个字典

去浮点数后面的位数

给浮点数起一个名字(key)

两个百分号代表一个百分号

No.3 新贵format

格式:

[fill]: 可选,空白处填充的字符

align: 可选,对齐方式(需配合width使用)

[sign]: 可选,有无符号数字

[#]: 可选,对于二进制、八进制、十六进制,如果加上#,会显示否则不显示

[width]: 可选,格式化位所占宽度

[,]: 可选,为数字添加分隔符,如:1,000,00

[.precision]: 可选,小数位保留精度

[type]: 可选,格式化类型

传入「字符串类型」的参数:

传入「整数类型」的参数

传入「浮点或小数类型」的参数

format格式化示例:

基本format格式化方式

索引映射对应参数

如上可知索引跟参数是一一对应的,从0开始。

字典的方式

索引内的索引

制定参数类型

制定名称(key)的值类型

异类实例

索引

更多格式化操作参考:https://docs.python.org/3/library/string.html

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180525G08RU500?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券