包括Python面试中常见的问题,涵盖列表、元组、字符串插值、比较操作符、装饰器、类与对象、函数调用方式、数据结构操作、序列化、数据处理函数等多个方面。
旨在帮助数据科学家和软件工程师准备面试或提升Python技能。
2、Python面试题解析:如何进行字符串插值?
name = "Alice"
age = 30
print("My name is %s and I am %d years old." % (name, age))2、`str.format()` (新式格式化): 使用 {} 占位符,并通过 format() 方法填充值。
name = "Bob"
age = 25
print("My name is {} and I am {} years old.".format(name, age))
print("My name is {0} and I am {1} years old.".format(name, age)) # 使用索引
print("My name is {name} and I am {age} years old.".format(name=name, age=age)) # 使用关键字3、f-string (格式化字符串字面值): Python 3.6 引入,简洁易读,性能也最好。
name = "Charlie"
age = 28
print(f"My name is {name} and I am {age} years old.")
print(f"My name is {name.upper()} and I am {age + 2} years old.") # 支持表达式
from string import Template
name = "David"
age = 32
t = Template("My name is $name and I am $age years old.")
print(t.substitute(name=name, age=age))
各种方法都能实现字符串插值,但各有优缺点。 % 操作符较为古老,可读性较差。 str.format() 功能更强大,支持更多格式化选项。 f-string 最简洁高效,但需要 Python 3.6+。 模板字符串安全性最高,适合处理用户输入。
选择合适的方法取决于你的需求和 Python 版本。推荐使用 f-string,如果需要更高的安全性,则考虑模板字符串。 注意不同方法的语法差异。
格式化规范: % 操作符、str.format() 和 f-string 都支持丰富的格式化规范,例如控制精度、宽度、对齐方式等。可以参考 Python 官方文档了解更多细节。例如:
pi = 3.141592653589793
print(f"Pi is approximately {pi:.2f}") # 输出: Pi is approximately 3.14
`str.format()` 的高级用法: 支持更复杂的格式化操作,例如访问字典和列表元素。
data = {'name': 'Eve', 'age': 20}
print("My name is {data[name]} and I am {data[age]} years old.".format(data=data))
安全性: 当处理用户提供的字符串时,使用模板字符串可以避免一些安全风险,例如代码注入。