如何在循环中处理Python异常
在Python中,循环技术可以将复杂的问题转化为简单的问题。它允许我们改变程序的流程,这样我们就不需要重复编写相同的代码,而是可以重复执行一定次数,直到满足某个条件为止。例如,如果我们需要显示前十个自然数,我们可以使用循环来执行十次迭代,而不是使用打印命令十次。
Python提供了三种方式来循环执行程序中的代码块:使用 for 循环、 while 循环和 嵌套 循环。
在本文中,让我们看看如何在这些循环中处理异常。
在While循环中处理异常
While 循环在满足条件为TRUE的情况下持续运行代码。它在执行指令之前首先检查条件。
语法
while condition:
statements(code)
在while循环内部有多个语句。条件可以是我们想要的任何条件。当条件失败(变为假)时,循环终止,执行流程继续到下一行代码。
while循环的异常处理与常规方法非常相似。包含可能引发异常的代码被封装在try块中。
我们的语句前面有关键字”except”。可以创建”自定义”异常:使用raise语句可以强制产生特定的异常。
示例
假设我们希望从用户那里请求一个整数。可以使用input()方法来实现。但是,从此方法获取的输入的默认值是字符串;我们必须将其转换为整数。可以使用类型转换(int)来实现。
在这里,如果输入给方法的值不是有效的整数,我们将引发ValueError。每当给出错误类型的输入时,while循环将继续要求用户输入正确的值。一旦正确的值被输入,循环就退出。以下示例说明了这一点。
# The loops keeps executing until the value entered is an integer
while True:
try:
n = int(input("Please Enter an Integer: "))
break
except ValueError:
print(" The Integer You entered is not valid! Please try again…")
print("You successfully entered an Integer!")
输出
如下所示的输出,while循环会一直执行,直到正确的值被输入作为输入。
Please Enter an Integer: g
The Integer You entered is not valid! Please try again…
Please Enter an Integer: h
The Integer You entered is not valid! Please try again…
Please Enter an Integer: 7
You successfully entered an Integer!
处理 For 循环中的异常
在 Python 中,for 循环可以遍历序列(列表、元组、字符串)或其他可迭代对象。遍历序列的过程称为遍历。
for val in sequence:
loop body
在每次迭代中,val是变量,它取得序列中的项的值。
循环会一直重复,直到我们达到序列的最后一项。通过缩进,我们可以将for循环的主体与其余代码分开。
让我们检查一下我们是否可以访问一个超过数组长度的数组索引,并处理随后的异常。
示例
在以下示例中,我们使用for循环遍历包含月份名称的列表。如果这些月份名称存在于列表中,则打印出来;一旦循环超过给定列表的长度,except块将被执行,并相应地显示输出。
array = ["Jan", "Feb", "Mar", "Apr"]
for i in range(5):
try:
print("The element from the array present in index", i,"is", array[i])
except:
print ("Index out of range")
输出
上述程序的输出如下所示:
The element from the array present in index 0 is Jan
The element from the array present in index 1 is Feb
The element from the array present in index 2 is Mar
The element from the array present in index 3 is Apr
Index out of range