如何在循环中处理Python异常

如何在循环中处理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

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程