转载自:
http://www.jb51.net/article/105933.htm
前言
Python 在 2.6 版本中新加了一个字符串格式化方法: str.format()
。它的基本语法是通过 {} 和 : 来代替以前的 %.。
格式化时的占位符语法:
1 |
|
“映射”规则
通过位置
str.format()
可以接受不限个参数,位置可以不按顺序:
1 2 3 4 5 6 |
|
通过关键字参数
使用关键参数时字符串中需要提供参数名:
1 2 3 4 5 |
|
通过对象属性
str.format()
可以直接读取用户属性:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
通过下标
在需要格式化的字符串内部可以通过下标来访问元素:
1 2 3 4 5 |
|
指定转化
可以指定字符串的转化类型:
1 |
|
其中 "!r" 对应 repr(); "!s" 对应 str(); "!a" 对应 ascii()。 示例:
1 2 |
|
格式限定符
填充与对齐
填充常跟对齐一起使用。^, <, > 分别是居中、左对齐、右对齐,后面带宽度, : 号后面带填充的字符,只能是一个字符,不指定则默认是用空格填充。
1 2 3 4 5 6 7 8 9 10 11 12 |
|
浮点精度
用 f 表示浮点类型,并可以在其前边加上精度控制:
1 2 3 4 5 6 7 8 |
|
还可以为浮点数指定符号,+ 表示在正数前显示 +,负数前显示 -; (空格)表示在正数前加空格,在幅负数前加 -;- 与什么都不加({:f})时一致:
1 2 3 4 5 6 7 8 9 10 |
|
指定进制
1 2 3 4 |
|
千位分隔符
可以使用 "," 来作为千位分隔符:
1 2 |
|
百分数显示
1 2 |
|
事实上,format 还支持更多的类型符号:
1 |
|
其他技巧
占位符嵌套
某些时候占位符嵌套还是很有用的:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
作为函数使用
可以先不指定格式化参数,而是在不要的地方作为函数来调用:
1 2 3 |
|
转义大括号
当在字符串中需要使用大括号时可以用大括号转义:
1 2 |
|