python format格式化函数详解

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 对字符串进行格式化

对于字符串,可以使用占位符{:n}、{:^n}来指定输出的字符串宽度,其中n为字符串宽度,<、>、^分别代表左对齐、右对齐和居中对齐。

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()函数的基本用法和高级用法,才能更好地发挥它的作用。

后端开发标签