Python面试必备:11道基础面试题解析
88 浏览量
更新于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有所帮助。
263 浏览量
142 浏览量
2019-08-10 上传
131 浏览量
107 浏览量
2023-11-14 上传
345 浏览量
2021-08-13 上传
274 浏览量
weixin_38590790
- 粉丝: 4
- 资源: 940
最新资源
- 格式转换工具,视频,音频类互相无损转换
- 雅马哈本
- 基于Jetty+Servlet+Jsp+MySQL+MyBatis技术实现的简单博客系统
- plant-help:我需要跟踪何时在家浇水
- EXP1_ngc.rar
- docker-angular:带有节点14的Docker上的Angular 11.2.9
- biketracking:BikeTracking是一个Android应用程序,用于跟踪您的自行车活动
- 基于PCA算法的图像融合matlab源码
- MiniGameOne:Minigame Apple Road Unity 3D
- 汉王唐人笔TR-TP618手写板驱动程序 官方版
- diospratama.github.io
- 维控电子HMI互锁的应用例子.rar
- EDU:一个包含我公开的项目,任务和其他作品的回购
- 用u-ns检查
- 测量目标之间的距离
- 黑苹果MAC变频查看,Hackintosh查看CPU频率的软件---Intel Power Gadget v3.0.3