Python面试必备:11道基础面试题解析
58 浏览量
更新于2024-09-01
收藏 168KB PDF 举报
丰富的格式控制。而%操作符则相对简单,它主要用于替换字符串中的占位符,通常用于基本类型的数据格式化。两者的区别如下:
1). %操作符的使用:
使用%操作符时,字符串中需要被替换的部分由%符号和格式代码组成,如`"%d %s" % (10, "hello")`,其中%d代表整数,%s代表字符串。然后通过%操作符后的元组或字典来提供替换的值。
2). .format方法的使用:
`.format`方法提供了更灵活的语法,例如`"{0} {1}".format(10, "hello")`,在这里,数字0和1是位置参数,对应于提供的参数的顺序。此外,还可以使用关键字参数,如`"{name} {age}".format(name="Alice", age=25)`。
3). .format的优势:
- 可读性更强:可以使用字段名来代替位置索引,使得代码更易理解。
- 支持更多格式选项:可以控制数值的精度,对齐方式,填充字符等。
- 参数数量不限:可以接受任意数量的参数。
- 参数顺序不敏感:可以通过关键字指定参数,无需按顺序提供。
五、Python的异常处理
Python使用try/except语句来处理异常。当try块中的代码出现错误时,会触发对应的异常,然后执行except块中的代码。例如:
```python
try:
# 可能会抛出异常的代码
x = 1 / 0
except ZeroDivisionError:
print("不能除以零!")
```
在上述代码中,如果尝试除以零,会触发`ZeroDivisionError`,程序不会立即崩溃,而是执行except块中的代码,打印出一条错误消息。
六、Python的装饰器
装饰器是一种特殊类型的函数,可以修改其他函数的功能或行为,而不需要改变原函数的源代码。例如,一个简单的日志装饰器可能如下所示:
```python
def log(func):
def wrapper(*args, **kwargs):
print(f"调用了函数:{func.__name__}")
return func(*args, **kwargs)
return wrapper
@log
def add(x, y):
return x + y
```
在这个例子中,`add`函数在调用时会被`log`装饰器包装,从而在每次调用时自动打印一条日志。
七、Python的面向对象编程
Python支持面向对象编程(OOP),包括类的定义、继承、封装和多态。类是创建对象的模板,对象是类的实例。例如:
```python
class Dog:
def __init__(self, name):
self.name = name
def bark(self):
print(f"{self.name}汪汪叫")
my_dog = Dog("旺财")
my_dog.bark() # 输出:"旺财汪汪叫"
```
八、Python的迭代器和生成器
迭代器是实现了`__iter__`和`__next__`方法的对象,可以迭代访问容器中的元素。生成器是特殊的迭代器,使用`yield`语句来暂停函数的执行并返回值。例如:
```python
def count_up_to(n):
for i in range(n):
yield i
for num in count_up_to(5):
print(num) # 输出:0 1 2 3 4
```
九、Python的上下文管理器
上下文管理器用于处理资源的获取和释放,如文件操作。通过with语句使用上下文管理器,确保资源在使用后会被正确关闭。例如:
```python
with open("file.txt", "r") as f:
content = f.read()
print(content)
```
十、Python的列表推导式和字典推导式
列表推导式允许快速创建新列表,而字典推导式用于创建新字典。例如:
```python
# 列表推导式
squares = [x**2 for x in range(10)]
# 字典推导式
even_squares = {x: x**2 for x in range(10) if x % 2 == 0}
```
十一、Python的模块导入和包管理
Python使用`import`语句导入模块,可以使用`from...import`选择性地导入模块中的特定部分。Python的包结构允许组织大型项目,使用`.`来访问包内的子模块。
以上就是关于Python的11道基本面试题的详细解答,涵盖了语言基础、面向对象、异常处理、数据结构和进阶特性等多个方面,希望对学习和理解Python有所帮助。
2021-08-24 上传
2019-08-10 上传
2019-08-10 上传
点击了解资源详情
2019-08-10 上传
2023-11-14 上传
2021-10-01 上传
2021-08-13 上传
2020-08-11 上传
weixin_38590790
- 粉丝: 4
- 资源: 940
最新资源
- 前端协作项目:发布猜图游戏功能与待修复事项
- Spring框架REST服务开发实践指南
- ALU课设实现基础与高级运算功能
- 深入了解STK:C++音频信号处理综合工具套件
- 华中科技大学电信学院软件无线电实验资料汇总
- CGSN数据解析与集成验证工具集:Python和Shell脚本
- Java实现的远程视频会议系统开发教程
- Change-OEM: 用Java修改Windows OEM信息与Logo
- cmnd:文本到远程API的桥接平台开发
- 解决BIOS刷写错误28:PRR.exe的应用与效果
- 深度学习对抗攻击库:adversarial_robustness_toolbox 1.10.0
- Win7系统CP2102驱动下载与安装指南
- 深入理解Java中的函数式编程技巧
- GY-906 MLX90614ESF传感器模块温度采集应用资料
- Adversarial Robustness Toolbox 1.15.1 工具包安装教程
- GNU Radio的供应商中立SDR开发包:gr-sdr介绍