1. 什么是python format格式化函数
Python的print()函数是开发者经常使用的一个函数,它在控制台输出数据,是调试代码时必不可少的工具。在输出数据之前,我们常常需要对数据进行格式化处理,方便程序的可读性和理解性。Python中提供的格式化函数就是为此而生的,它可以将不同格式的数据按照规则组合成字符串,并输出到控制台或者文件中。
Python的格式化函数有多种,其中最常用和最灵活的是format()函数。
2. format()函数的基本用法
2.1 简单的字符串格式化
format()函数最简单的用法就是将字符串中的占位符{}替换成相应的值。
temperature = 27.5
print('当前室温为{}度'.format(temperature))
输出结果:
当前室温为27.5度
在这个例子中,我们将一个float类型的变量temperature插入到了字符串中的{}中,格式化输出了当前室温。
2.2 带索引的字符串格式化
有时候我们需要在字符串中使用多个占位符,这时就可以使用索引指定占位符的位置。
name = '小明'
age = 20
print('{}今年{}岁了'.format(name, age))
输出结果:
小明今年20岁了
在这个例子中,我们用format()函数将name和age两个变量插入到字符串中,通过指定{}的索引来指定它们的位置。
2.3 带关键字的字符串格式化
format()函数还支持使用关键字参数,可以让占位符和变量之间的关联更加明显。
name = '小红'
score = 95
print('{n}的数学成绩是{sc}'.format(n=name, sc=score))
输出结果:
小红的数学成绩是95
在这个例子中,我们用{n}和{sc}作为占位符,用关键字参数n和sc来指定这两个占位符的值,使得代码更加清晰易读。
3. format()函数高级用法
3.1 对数字进行格式化
format()函数不仅可以格式化字符串,还可以对数字进行格式化处理。
对于浮点数,可以使用占位符{:.nf}来指定小数点后的位数,其中n为小数点后保留的位数。
import math
print('圆周率是{:.2f}'.format(math.pi))
输出结果:
圆周率是3.14
在这个例子中,我们使用{:.2f}来指定圆周率的小数点后有两位,输出结果为3.14。
对于整数,可以使用占位符{:nd}来指定输出的数字宽度,其中n为数字宽度。
age = 18
print('我的年龄是{:4d}岁'.format(age))
输出结果:
我的年龄是 18岁
在这个例子中,我们使用{:4d}来指定输出的数字宽度为4,输出结果为两个空格和18。
3.2 对字符串进行格式化
对于字符串,可以使用占位符{:
name = 'Tony Stark'
print('我的名字是{:>20}'.format(name))
输出结果:
我的名字是 Tony Stark
在这个例子中,我们使用{:>20}来指定输出的字符串宽度为20,右对齐,并输出了一个字符串Tony Stark。
3.3 对字典和列表进行格式化
对于字典和列表,可以使用占位符{key}和{index}来指定输出的值。
person = {'name': 'John', 'age': 25}
print('我的名字是{name},今年{age}岁'.format(**person))
numbers = [1, 2, 3, 4, 5]
print('列表中的第二个数是{1}'.format(*numbers))
输出结果:
我的名字是John,今年25岁
列表中的第二个数是2
在这个例子中,我们用**person使得字典中的key和value一一对应,*numbers则展开了列表,方便了{1}的使用。
3.4 使用format()函数格式化类
除了基本数据类型,format()函数还支持对对象进行格式化处理。
class Person(object):
def __init__(self, name, age):
self.name = name
self.age = age
person = Person('Bob', 20)
print('我的名字是{n},今年{age}岁'.format(n=person.name, age=person.age))
输出结果:
我的名字是Bob,今年20岁
在这个例子中,我们使用类来定义了一个Person对象,将其传递给format()函数,并用问号来指定占位符,以达到格式化字符串的目的。
4. 数字格式化示例
下面是一个完整的数字格式化示例。
temperature = 27.5
humidity = 0.6
print('当前气温为{:.1f}度,湿度为{:.0%}'.format(temperature, humidity))
输出结果:
当前气温为27.5度,湿度为60%
在这个例子中,我们使用了{:.1f}和{:.0%}两个占位符来分别指定气温和湿度的输出格式。需要注意的是,{:.0%}中的0表示百分号后不保留小数位。
5. 结论
format()函数是Python中最灵活、最强大的格式化工具之一,可以对不同类型的数据进行格式化处理,符合Python“一切皆对象”的设计理念。format()函数可以提高程序的可读性和理解性,使得代码更加简洁清晰。需要掌握format()函数的基本用法和高级用法,才能更好地发挥它的作用。