回到目录
Q-65:你如何在 Python 中使用 Try/Except/Finally 处理异常?
Python 制定了 Try、Except、Finally 结构来处理错误和异常。我们将缩进的不安全代码括在 try 块下。我们可以将回退代码保留在 except 块中。任何打算最后执行的指令都应该在 finally 块下。
try:
print(“在 try 块中执行代码”)
print(exception)
except:
print(“进入except块”)
finally:
print(“到达最后一个区块”)
输出是:
在 try 块中执行代码
进入except块
到达最后一个区块
回到目录
Q-66:你如何为 Python 中的预定义条件引发异常?
我们可以根据某些条件引发异常。
例如,如果我们希望用户只输入奇数,否则会引发异常。
示例 - 引发异常
while True:
try:
value = int(input(“输入一个奇数-”))
if value%2 == 0:
raise ValueError(“由于无效输入退出!!!”)
else:
print(“输入的值为: %s” % value)
except ValueError as ex:
print(ex)
break
输出是:
输入一个奇数- 2
由于无效输入退出!!!
输入一个奇数- 1
输入的值为: 1
输入一个奇数-
回到目录
Q-67:什么是 Python 迭代器?
Python 中的迭代器是类似数组的对象,允许在下一个元素上移动。我们在遍历循环时使用它们,例如在“for”循环中。
Python 库没有。的迭代器。例如,一个列表也是一个迭代器,我们可以在它上面启动一个 for 循环。
回到目录
Q-68:Iterator 和 Iterable 有什么区别?
列表、元组、字典和集合等集合类型都是可迭代对象,而它们也是可迭代容器,在遍历时返回迭代器。
回到目录
以下是一些高级 Python 面试问题。
Q-69:什么是 Python 生成器?
Generator 是一种函数,它让我们指定一个函数,它的作用类似于迭代器,因此可以在“for”循环中使用。
在生成器函数中,yield 关键字替代了 return 语句。
def fn():
return “简单的 Python 函数”
def generate():
yield “Python 生成器函数”
print(next(generate()))
输出是:
Python 生成器函数
回到目录
Q-70:Python 中的闭包是什么?
Python 闭包是由另一个函数返回的函数对象。我们使用它们来消除代码冗余。
在下面的例子中,我们编写了一个简单的乘法闭包。
def multiply_number(num):
def product(number):
‘product() here is a closure’
return num * number
return product
num_2 = multiply_number(2)
print(num_2(11))
print(num_2(24))
num_6 = multiply_number(6)
print(num_6(1))
输出是:
22
48
6
回到目录
Q-71:Python 中的装饰器是什么?
Python 装饰器使我们能够动态地向给定对象添加新行为。在下面的示例中,我们编写了一个简单的示例来显示函数执行前后的消息。
def decorator_sample(func):
def decorator_hook(*args, **kwargs):
print(“函数调用前”)
result = func(*args, **kwargs)
print(“函数调用后”)
return result
return decorator_hook
@decorator_sample
def p