format函数:字符串的格式化输出。使用{}作为占位符,代替之前版本的%
1.输出类型
{}或者{:}则代表输出的是字符串
name = "张三"
age = 18
address = "北京市"
sex = "男"
# {}或者{:}则代表输出的是字符串
print("我的名字是:{}".format(name))
print("我的名字是:{:}".format(name))
{:d}、{:06d} 代表输出的是十进制数值,接收的数字是int类型的。如果变量是其他类型的,会报错。
name = "张三"
age = 18
address = "北京市"
sex = "男"
# {:d}、{:06d} 代表输出的是十进制数值,是整数.d前加数字,则输出对应位数,如果不够,就在数字前加上0
print("我的年龄是:{:d}".format(age))
print("我的年龄是:{:03d}".format(age))
{:f}、 {:.2f}输出为浮点数。接受的是float类型的。f前加数字,则表示需要保留的位数。如果接收的是其他数据类型,则会报错。
# format函数,字符串格式化输出
name = "张三"
age = 18
address = "北京市"
sex = "男"
float_num = 123.12345
# {:f}、 {:.2f}输出为浮点数
print("输出一个浮点的数字:{:f}".format(float_num))
print("输出浮点数字,保留3位小数:{:.3f}".format(float_num))
2.变量与占位符对应
a.占位符内,没有任何内容时,则按照变量的顺序,一一对应占位符。如下图:
name = "张三"
age = 18
address = "北京市"
sex = "男"
float_num = 123.12345
# 有多个值时,{}没有值,则按顺序一一对应填充
print("姓名:{:s} \n年龄:{} \n地址:{} \n".format(name, age, address))
b.占位符内,使用数字,调整变量填充顺序。{}中的数字,代表的是变量的索引。需要注意,变量的索引是从0开始的。{}中输入数字时,不要大于索引,否则会报错。
name = "张三"
age = 18
address = "北京市"
sex = "男"
float_num = 123.12345
# 当{}中存在数字时,数字对应变量的索引,会按照数字取format函数中的值进行填充。需要注意,索引的值是从0开始。{}中的数字,不能超过变量的索引,否则会报错。
print("姓名:{1} \n年龄:{2} \n地址:{0} \n".format(name, age, address))
c.可以进行关键字进行变量对应填充。使用这个方法,需要注意,{}中的关键字一定要和format函数中的关键字一样。
print("我的名字是{name},年龄是:{age}".format(name='张三', age=18))
d.如果是列表,还可以使用列表形式的索引。
# 定义一个列表
list1 = ['张三', 18]
print('我的名字是{0[0]}, 年龄是{0[1]}'.format(list1))
e.format函数中,还可以使用字典,在{}中输入字典的key,取出对应的值。但是在format函数中,字典需要加上**
# 定义一个字典
dict1 = {"name": "张三", "age": 18}
print("我的名字是:{name},年龄是:{age}".format(**dict1))
3.需要注意的点:占位符可以比变量值少,但不能比变量值多,否则会报错。
name = "张三"
age = 18
address = "北京市"
sex = "女"
# {}占位符,要比format函数的变量少。否则会报错
print("姓名:{} \n年龄:{} \n地址:{} \n性别:{}".format(name, age, address)) # 有4个占位符,三个变量,则报错
print("姓名:{} \n年龄:{} \n地址:{} \n".format(name, age, address, sex)) # 有3个占位符,4个变量,则不会报错