MST

星途 面试题库

面试题:Python中%s与format占位符的对比

请阐述Python中%s占位符与format方法占位符在使用场景、语法规则以及性能方面有哪些主要区别?并分别给出使用%s和format占位符实现字符串格式化的简单示例代码。
30.8万 热度难度
编程语言Python

知识考点

AI 面试

面试题答案

一键面试

使用场景

  • %s占位符:较传统,在Python早期版本广泛使用,对于简单、少量占位格式化场景仍可使用。
  • format方法占位符:更灵活强大,适用于复杂格式化需求,如按索引、关键字、对象属性和方法等进行格式化。

语法规则

  • %s占位符:使用%连接字符串与要格式化的值,%s表示字符串占位,有多个值时需用括号括起来。
  • format方法占位符:在字符串中用{}作为占位符,通过format方法传入值,可在{}内指定格式化选项。

性能方面

  • %s占位符:性能略逊于format方法,因为其实现相对简单直接,没有format方法的优化机制。
  • format方法占位符:性能更好,特别是多次格式化操作时,format方法内部做了优化,缓存格式化字符串的解析结果。

示例代码

  • %s占位符
name = "Alice"
age = 30
print("My name is %s and I'm %d years old." % (name, age))
  • format方法占位符
name = "Alice"
age = 30
print("My name is {} and I'm {} years old.".format(name, age))