您的位置:

Python的.format()方法实现字符串的格式化输出

一、基本语法

.format()方法是Python的字符串格式化输出的一种方式,通过在字符串中使用占位符{},然后调用.format()方法,将括号内的变量插入到占位符中。例如:

name = "小明"
age = 20
text = "大家好,我叫{},今年{}岁。".format(name, age)
print(text)

输出结果为:

大家好,我叫小明,今年20岁。

在这个例子中,我们使用了占位符{},并且在.format()方法中传递了两个变量name和age,它们分别被插入到了占位符中。

除了使用{}插入变量外,我们还可以通过{}中的数字指定插入的变量的位置,例如:

name = "小明"
age = 20
text = "大家好,我叫{0},今年{1}岁。".format(name, age)
print(text)

输出结果仍为:

大家好,我叫小明,今年20岁。

二、格式控制

.format()方法可以通过冒号:后跟格式控制符号,对插入的变量进行格式化控制,例如:

import math
number = math.pi
text = "圆周率保留三位小数是{:.3f}".format(number)
print(text)

输出结果为:

圆周率保留三位小数是3.142

在这个例子中,我们使用了:.3f格式控制符号,将插入的变量number保留到小数点后三位。

除了:f表示插入的变量是浮点数外,我们还可以使用其他格式控制符号,例如:

  • d - 十进制整数
  • x - 十六进制整数(小写字母)
  • X - 十六进制整数(大写字母)
  • b - 二进制整数
  • e - 科学计数法表示的浮点数(小写字母)
  • E - 科学计数法表示的浮点数(大写字母)

例如:

number = 65
text1 = "十进制整数:{0:d}".format(number)
text2 = "十六进制整数:{0:x}".format(number)
text3 = "二进制整数:{0:b}".format(number)
text4 = "科学计数法(小写字母):{0:e}".format(number)
text5 = "科学计数法(大写字母):{0:E}".format(number)
print(text1)
print(text2)
print(text3)
print(text4)
print(text5)

输出结果为:

十进制整数:65
十六进制整数:41
二进制整数:1000001
科学计数法(小写字母):6.500000e+01
科学计数法(大写字母):6.500000E+01

三、格式化字符串

Python 3.6及以上版本支持在字符串前使用f标识符,然后在字符串中使用{}插入变量,以实现格式化字符串的快捷方式,例如:

name = "小明"
age = 20
text = f"大家好,我叫{name},今年{age}岁。"
print(text)

输出结果与第一个例子相同:

大家好,我叫小明,今年20岁。

这种格式化字符串的方式更加简洁方便,不用写.format()方法,也不用担心占位符和传入的变量个数不一致的问题。

四、高级用法

.format()方法还有一些高级用法,比如可以在{}中使用字典键值对或对象属性来指定插入的变量,例如:

person = {'name': '小明', 'age': 20}
text = "大家好,我叫{name},今年{age}岁。".format(**person)
print(text)

输出结果仍为:

大家好,我叫小明,今年20岁。

在这个例子中,我们使用了字典person和**运算符,将字典中的键值对作为参数传递给.format()方法作为插入变量。

同样的,我们也可以使用对象属性来指定插入变量,例如:

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

person = Person("小明", 20)
text = "大家好,我叫{name},今年{age}岁。".format(**person.__dict__)
print(text)

输出结果仍然为:

大家好,我叫小明,今年20岁。

在这个例子中,我们定义了一个Person类,并给该类定义了两个属性:name和age,然后我们创建了一个Person类的实例person,最后使用.__dict__方法将person转换为一个字典,并将字典作为参数传递给.format()方法作为插入变量。

五、总结

.format()方法是Python的字符串格式化输出的一种方式,使用占位符{}和.format()方法可以将变量插入到占位符中,并且通过冒号:和格式控制符号可以对插入的变量进行格式化输出;在Python 3.6及以上版本中,可以使用格式化字符串的快捷方式f"...",不用写.format()方法;.format()方法还支持高级用法,可以使用字典键值对或对象属性来指定插入变量。