Python 格式化字符串
格式化字符串方法
- 使用
%
操作符号 - 使用字符串对象的
format()
方法
方法一
% (python早期版本中使用的方法)
语法: '%str'%args
1. 第一部分 '%str'
,要指定的 格式化模板
其中,str 格式为 [-][+][0][m][.n]string
参数 | 可选/必需 | 形式 | 说明 | 备注 |
---|---|---|---|---|
[-] | 可选 | - | 左对齐,在负数前加上 “负号”,正数前无符号 | |
[+] | 可选 | + | 右对齐,在负数前加上“负号”,正数前加上“正号” | |
[0] | 可选 | 0 | 右对齐,在负数前加上 “负号”,正数前无符号,并且用“0” 填充空白处 常与 [m] 共用 | |
[m] | 可选 | 整数 | 表示数值所占的宽度 [0][m] 连接使用时, 表示不足 m 位数的前面 补充 0 | |
[.n] | 可选 | .整数 | 小数点后保留的位数 | |
string | 必需 | 格式化的字符串 | 要格式为的类型,例如: 格式化为 字符串 则为 s ;十进制数 则为 d ,浮点数 则为 f … |
2. 第二部分 %args
要转换为的项目,转换多个项目时,必需使用 元组
,而不能使用 列表
例如:
template = '编号: %07d\t公司名称:%s \t 官网:http://www.%s.com' # 定义格式化模板
item = (7,"百度","baidu") #要格式化的内容
print(template%item)
# 以上三句等效于以下
print('编号: %07d\t公司名称:%s \t 官网:http://www.%s.com'%(7,"百度","baidu"))
# 输出结果:
# 编号: 0000007 公司名称:百度 官网:http://www.baidu.com
python字符串格式化符号
符号 | 描述 |
---|---|
%c | 格式化 字符及其ASCII码 |
%s | 格式化 字符串 |
%d | 格式化 整数 |
%u | 格式化 无符号整型 |
%o | 格式化 无符号八进制数 |
%x | 格式化 无符号十六进制数 |
%X | 格式化 无符号十六进制数(大写) |
%f | 格式化 浮点数字,可指定小数点后的精度 |
%e | 用科学计数法格式化浮点数 |
%E | 作用同 %e ,用科学计数法格式化浮点数 |
%g | %f 和 %e 的简写 |
%G | %f 和 %E 的简写 |
%p | 用十六进制数格式化变量的地址 |
格式化操作符辅助指令:
符号 | 功能 |
---|---|
* | 定义宽度或者小数点精度 |
- | 用做左对齐 |
+ | 在正数前面显示加号 + |
<sp> | 在正数前面显示 空格 |
# | 在八进制数前面显示零 0 ,在十六进制前面显示 0x 或者 0X (取决于用的是 x 还是 X ) |
0 | 显示的数字前面填充’0’而不是默认的空格 |
% | %% 输出一个单一的 % |
(var) | 映射变量(字典参数) |
m.n. | m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话) |
方法二、
.format() (Python2.6 之后的方法,推荐使用)
语法: str.format(args)
1. 第一部分 str
,要指定的 格式化模板,其格式如下
{[index][:[[Fill]align][#][width][.precision][type]]}
参数 | 说明 | 备注 |
---|---|---|
index | 指定格式对象在参数列表中的索引(索引值从0开始)位置,如果省略则按照值的先后顺序自动分配 | |
fill | 指定空白处填充的字符 | |
align | 指定对齐方式,常与 width 一起使用 < 内容左对齐,> 内容右对齐,^ 内容居中= 内容左对齐并且把填充符号 fill 填充在值的右侧 (仅对数字有效) | |
sign | 指定有无符号+ 正数加正号,负数加负号; - 正数不变,负数加负号;空格 正数加空格,负数加负号 | |
# | 指定二进制、八进制、十六进制是否加前缀的,有 # 则会添加相应的前缀二进制加 0b ; 八进进制加 0o ; 二进制加 0x | |
width | 指定字符串所占宽度 | |
precision | 指定要保留的小数位数 | |
type | 要格式化的值的类型。s 表示字符串;d 十进制正数; f 浮点数 |
2. 第二部分 args
要转换为的项目,转换多个项目时,使用 逗号
进行分割