.format方法是一种字符串格式化的方法,它可以将需要输出的内容填充进格式化的字符串中,并生成一个新的字符串。其中,格式化字符串通常包含了用花括号{}指示的占位符,这些占位符可以按照顺序或者关键字来对应传入的参数,也可以指定格式,比如数字、日期等,以及字符串的对齐方式等。这种字符串格式化的方式相比传统的字符串拼接有了许多优势,不仅使代码更加清晰易读,也使得输出内容更加灵活自由。
使用.format方法进行字符串格式化很简单,只需要在需要格式化的字符串中加入相应的占位符,再将需要填入占位符的数据作为.format方法的参数传入即可。具体用法如下:
# 按照顺序填入参数 print("我叫{},今年{}岁。".format("小明", 20)) # 指定位置填入参数 print("我叫{1},今年{0}岁。".format(20, "小明")) # 指定关键字填入参数 print("我叫{name},今年{age}岁。".format(name="小明", age=20)) # 指定格式 print("小明的身高是{:.2f}米".format(1.75)) # 指定对齐方式 print("{:<10}年龄:{}".format("小明", 20))
上面的代码输出结果分别是:
我叫小明,今年20岁。
我叫小明,今年20岁。
我叫小明,今年20岁。
小明的身高是1.75米
小明 年龄:20
在.format方法中,如果要使用复杂的参数,比如列表、字典、对象等,可以在占位符中使用更加复杂的语法。例如:
# 列表 scores = [80, 90, 85] print("小明的成绩单:语文:{},数学:{},英语:{}".format(*scores)) # 字典 info = {"name": "小明", "age": 20, "height": 175} print("姓名:{name},年龄:{age},身高:{height}".format(**info)) # 对象 class Student: def __init__(self, name, age): self.name = name self.age = age s = Student("小明", 20) print("姓名:{0.name},年龄:{0.age}".format(s))
上面的代码输出结果分别是:
小明的成绩单:语文:80,数学:90,英语:85
姓名:小明,年龄:20,身高:175
姓名:小明,年龄:20
使用.format方法进行字符串格式化在实际开发中非常常见,比如:
1、日志记录:将日志信息格式化后输出。
import logging logging.basicConfig(format="%(asctime)s [%(levelname)s] %(message)s") logging.info("这是一条日志信息")
输出结果:
2021-03-05 13:56:23,610 [INFO] 这是一条日志信息
2、数据导出:将数据格式化后导出到文件或数据库中。
import csv rows = [("小明", 20, "男"), ("小红", 19, "女"), ("小刚", 21, "男")] with open("data.csv", "w", newline="") as csv_file: writer = csv.writer(csv_file) writer.writerow(["姓名", "年龄", "性别"]) for row in rows: writer.writerow(row)
输出结果:
姓名,年龄,性别
小明,20,男
小红,19,女
小刚,21,男
3、界面展示:将数据格式化后展示在界面上。
from tkinter import * root = Tk() root.geometry("200x100") label = Label(root, text="姓名:{}\n年龄:{}".format("小明", 20)) label.pack() root.mainloop()
输出结果:
姓名:小明
年龄:20
标签: python爬虫