什么是format

相对于基本格式化输出采用“%”的方法,format的功能强大,该函数把字符串当一个模板,通过传入的参数进行格式化,并且使用大括号“{}”作为特殊字符代替“%”,有点类似C#里面的占位符

1format的基本用法

·        不带编号,即“{}”

·        带数字编号,可调换顺序,即“{1}",“{2}”

·        带关键字,即“{a}","{tom}"

例如:

name "Sandy"

gender ""

age 18

print("姓名:%s,性别:%s年龄:%d"%(name,gender,age))

print("姓名:{},性别:{}年龄:{}".format(name,gender,age))

有了数字编号可以反复调用

print("姓名:{0},性别:{1}年龄:{2}学生姓名:{0}".format(name,gender,age))

标识名称更容易读懂

print("姓名:{name},性别:{gender}年龄:{age}学生姓名:{name}".format(name=name,gender=gender,age=age))

 

演示:

1.png

2)format的进阶用法

·        <(默认)左对齐,> 右对齐,^中间对齐

·        取位数“{:4s}","{:.2f}"等

如:

print("姓名:{:10}".format(name))#默认左对齐

print("姓名:{:<10}".format(name))#标识左对齐

print("姓名:{:>10}".format(name))#右对齐

print("姓名:{:^10}".format(name))#中间对齐

print("{:.2f}".format(3.1415926))#保留2位有效数字

print("{:10.2f}".format(3.1415926))#保留2位有效数字默认右对齐

print("{:>10.2f}".format(3.1415926))#保留2位有效数字指明右对齐

print("{:<10.2f}".format(3.1415926))#保留2位有效数字指明左对齐

print("{:^10.2f}".format(3.1415926))#保留2位有效数字中间对齐

演示:

2.png

3format数值

·        "b" 二进制,数字以2位基数进行输出

·        "c" 字符,在打印之前将整数转换成对应的unicode字符串

·        "d" 十进制数,数字以10为基数进行输出

·        "o" 八进制数,数字以8为基数进行输出

·        "x" 十六进制数,数字以16为基数进行输出,9位以上用a-f表示

·        "e" 幂符号,用科学计数法打印数字。用"e"表示幂

·        "g" 一般格式,数字以fixed-point进行输出,当数值特别大的时候,用幂形式打印

·        "n" 数字,当值为整数时和"d"相同,值为浮点数是和"g"相同,不同的是他会根据区域设置插入数字分隔符。

·        "%" 百分数,数值乘以100打印,保留6位小数,值后面会有一个百分号

·        "," 千位分隔符,货币表示或者大数据值经常用到

 

如:

num01,num02=200,300

print("十六进制打印:{0:x}{1:x}".format(num01,num02))

print("八进制打印:{0:o}{1:o}".format(num01,num02))

print("二进制打印:{0:b}{1:b}".format(num01,num02))

print("{0:c}".format(76))#可以把编码转换为特定的字符,参考ASCll

print("{:e}".format(123456.77544))#默认小数点后面保留6

print("{:0.2e}".format(123456.77544))#小数点后面保留2

print("{:g}".format(123456.77544))#保留6

print("{:g}".format(123456789.77544))#超过6位用科学计数法表示

print("{:%}".format(34))#默认小数点后面保留6

print("{:0.2%}".format(34))

print("{:,}".format(1234567890))

 

演示:

3.png