工控技术分享平台
1
异常简介
在编写程序时,我们经常会遇到各种错误和异常情况。为了增加程序的健壮性和可靠性,Python 提供了异常处理机制,允许我们在程序出现异常时进行处理。
异常是在程序执行过程中出现的错误情况,如:除零错误、索引错误、类型错误等。如果不进行处理,这些异常会导致程序崩溃或产生意外的结果。
Python 使用try-except语句来处理异常。try块用于包含可能出现异常的代码,except块用于捕获并处理异常。当异常发生时,程序将跳转到对应的except块进行处理,而不会中断程序的执行。
代码语言:javascript复制try:
# 可能出现异常的代码
...
except ExceptionType:
# 处理异常的代码
...
2
异常类型
在处理异常时,我们可以根据具体的异常类型进行相应的处理。Python 提供了许多内置的异常类型,包括:
- ZeroDivisionError:除零错误
- IndexError:索引错误
- TypeError:类型错误
- ValueError:值错误
可以根据具体的应用场景选择合适的异常类型进行处理。
3
异常处理示例
下面是一个简单的异常处理示例,我们将处理可能发生的除零错误。
代码语言:javascript复制try:
num1 = int(input('请输入一个数字:'))
num2 = int(input('请输入另一个数字:'))
result = num1 / num2
print('除法运算结果:', result)
except ZeroDivisionError:
print('除数不能为零!')
运行结果示例:
代码语言:javascript复制请输入一个数字:10
请输入另一个数字:0
除数不能为零!
在上述示例中,我们使用try-except语句来捕获可能发生的ZeroDivisionError异常。如果用户输入的除数为零,程序将跳转到except块中执行相应的处理代码。
4
课后练习题
练习 1:编写一个程序,要求用户输入两个数字,然后计算它们的商并输出结果。考虑到可能发生的异常情况,例如除零错误和类型错误,通过合适的异常处理来保证程序的健壮性。
代码语言:javascript复制try:
num1 = int(input('请输入一个数字:'))
num2 = int(input('请输入另一个数字:'))
result = num1 / num2
print('除法运算结果:', result)
except ZeroDivisionError:
print('除数不能为零!')
except ValueError:
print('输入的不是有效的数字!')
except Exception as e:
print('发生了一个未知异常:', str(e))
练习 2:使用异常处理改进之前的学生信息管理器程序(参考第十四部分的相关案例),在用户输入学生的年龄时,如果输入的不是有效的数字,给出错误提示并要求重新输入。
代码语言:javascript复制students = []
while True:
name = input('请输入学生姓名(输入'q'退出):')
if name == 'q':
break
try:
age = int(input('请输入学生年龄:'))
except ValueError:
print('输入的不是有效的数字,请重新输入!')
continue
student = {'姓名': name, '年龄': age}
students.append(student)
print('学生信息如下:')
for student in students:
print('姓名:{},年龄:{}'.format(student['姓名'], student['年龄']))
通过在输入年龄的代码块中添加异常处理,我们可以捕获用户输入的不是有效的数字时,给出错误提示并要求重新输入。
在上述代码中,我们在接收年龄输入处添加了异常处理。如果用户输入的内容不是有效的数字,则会抛出ValueError异常,我们可以使用try-except语句来捕获该异常,并给出错误提示。通过使用continue语句,程序会跳过当前循环,并要求用户重新输入。
这样,即使用户输入了错误的年龄格式,程序也会继续执行,直到用户输入正确的年龄为止。
5
总结
在本文中,我们学习了关于异常处理的基本知识和方法。我们了解了try-except语句的用法,可以用来捕获和处理可能的异常情况。我们还学习了一些常见的异常类型,并通过示例程序演示了异常处理的过程。
通过合适的异常处理,我们可以提高程序的健壮性和可靠性,减少崩溃和错误产生的影响。同时,我们也学习了如何给用户提供友好的错误提示,并要求他们重新输入。
希望通过本文的学习,读者能够掌握异常处理的基础知识,能够正确地处理在编写程序过程中可能发生的异常情况。请继续加油并进行更多的练习,提升自己在 Python 编程方面的能力!