格式:{[index] [: [fill] [align] [sign] [width] [.precision] [type]]}
-
index
:指定,表示args中第几个数据 -
fill
:指定空白处填充字符 -
align
:指定数据对齐方式 -
sign
:指定有无符号数 -
width
:指定输出数据时所占的宽度 -
.precision
:指定保留的小数位数 -
type
:指定输出数据具体类型
1. 接受不限个参数(index)
"""
format
语法:str.format(*args, **kwargs)
返回:格式化后的str
{}和:
"""
# 注意str中{}中数字或null数量,与format()中变量数一致
print("{1}-{0}-{1}".format("Hello", "world")) # 输出:world-Hello-world
2. 设置参数
stu = {"name":"ba", "age":17}
print("Your name is {name},and your age is {age}.".format(**stu)) # 使用字典设置参数
# 输出:Your name is ba,and your age is 17.
stu_list = [1, 2, "ba"]
print("Your name is {0[0]},and your age is {0[1]}.".format(stu_list))
# 注意,str中替代时,使用0,1等代替format中的stu_list;若使用本身会报错KeyError
# 输出:Your name is 1,and your age is 2.
3.借助:
实现数据格式化
3.1,
以,分割的数字形式(fill)
print("{:,}".format(1234567890)) # 输出:1,234,567,890
注:填充字符为,
且作用于整数或浮点数时,会以逗号分割形式输出
3.2 ^
, <
,>
(align)
-
<
:左对齐 -
>
:右对齐 -
=
:数据右对齐,同时将符号放置在填充内容的最左侧,该项仅对数字类型有效 -
^
:居中,需要与width参数一起使用
# : 号后面带填充的字符,只能是一个字符,不指定则默认是用空格填充。
print("{:^10}".format("abc")) # 输出: abc |结束点
print("{:0<10}".format("abc")) # 输出:abc0000000
print("{:*>10}".format("abc")) # 输出:*******abc
3.3 +
表示带符号(sign)
-
+
:表示在正数前显示+
,负数前显示-
-
-
: 表示在正数前不显示+
,负数前显示-
-
空格
:表示在正数前加空格
,负数前显示-
-
#
:对于二进制数、八进制数和十六进制数,使用此参数,各进制数前会分别显示 0b、0o、0x前缀;反之则不显示前缀。
# print("{:.+f},{:.+d}".format(12, -1)) # ValueError: Format specifier missing precision;+放置在.前
# print("{:+.2f} {:+d}".format(12, -2.2)) # ValueError: Unknown format code 'd' for object of type 'float'
print("{:+.2f} {:+d}".format(12, -2)) # 输出:+12.00 -2
3.4 .n
表示小数点后保留n位(. precision)
# 3.1 {:.nf} 保留小数后n位,转为float类型;
# 注意,n=0,则不带小数
print("{:.2f}".format(20)) # 输出:20.00
print("{:.0f}".format(3.1415926)) # 输出:3;
3.5 %
百分号格式(type)
-
s
:字符串 -
d
:十进制整数 -
f
/F
:转为浮点数(默认保留小数点后6位) -
c
:十进制整数自动转为对应的Unicode字符 -
g
/G
:自动在e和f中切换 -
b
:将十进制数自动转为二进制数 -
o
:将十进制数自动转为八进制数 -
x
/X
:将十进制数自动转为16进制数 -
%
:显示百分号(默认小数点后6位)
# .n% 表示保留n位小数位的%
print("{:%}".format(1234567890)) # 输出:123456789000.000000%
print("{:.2%}".format(3.1415926)) # 输出:314.16%
3.6 e
科学技术法(type)
print("{:e}".format(1234567890)) # 输出:1.234568e+09
print("{:.2e}".format(1234567890)) # 输出:1.23e+09