一、基本语法
.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()方法还支持高级用法,可以使用字典键值对或对象属性来指定插入变量。