在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
领取专属 10元无门槛券
私享最新 技术干货