Python 小白的晋级之路 - 第十六部分:异常处理

异常简介

在编写程序时,我们经常会遇到各种错误和异常情况。为了增加程序的健壮性和可靠性,Python 提供了异常处理机制,允许我们在程序出现异常时进行处理。

异常是在程序执行过程中出现的错误情况,如:除零错误、索引错误、类型错误等。如果不进行处理,这些异常会导致程序崩溃或产生意外的结果。

Python 使用try-except语句来处理异常。try块用于包含可能出现异常的代码,except块用于捕获并处理异常。当异常发生时,程序将跳转到对应的except块进行处理,而不会中断程序的执行。

  • try:
  •      # 可能出现异常的代码
  •      ...
  • except ExceptionType:
  •     # 处理异常的代码
  •     ...

2  异常类型

在处理异常时,我们可以根据具体的异常类型进行相应的处理。Python 提供了许多内置的异常类型,包括:

  • ZeroDivisionError:除零错误

  • IndexError:索引错误

  • TypeError:类型错误

  • ValueError:值错误

可以根据具体的应用场景选择合适的异常类型进行处理。

3  异常处理示例

下面是一个简单的异常处理示例,我们将处理可能发生的除零错误。

  • try:
  •      num1 = int(input('请输入一个数字:'))
  •      num2 = int(input('请输入另一个数字:'))
  •      result = num1 / num2
  •      print('除法运算结果:', result)
  • except ZeroDivisionError:
  •      print('除数不能为零!')
  运行结果示例:
  • 请输入一个数字:10
  • 请输入另一个数字:0
  • 除数不能为零!

在上述示例中,我们使用try-except语句来捕获可能发生的ZeroDivisionError异常。如果用户输入的除数为零,程序将跳转到except块中执行相应的处理代码。

4  课后练习题

练习 1:编写一个程序,要求用户输入两个数字,然后计算它们的商并输出结果。考虑到可能发生的异常情况,例如除零错误和类型错误,通过合适的异常处理来保证程序的健壮性。

  • 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:使用异常处理改进之前的学生信息管理器程序(参考第十四部分的相关案例),在用户输入学生的年龄时,如果输入的不是有效的数字,给出错误提示并要求重新输入。

  • 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 编程方面的能力!

往期回顾

Python 小白的晋级之路 - 第一部分:Python 的重要性和简洁的语法

Python 小白的晋级之路 - 第二部分:探索 Python 变量

Python实战之冒泡排序

Python 小白的晋级之路 - 第三部分:玩转 Python 字符串

Python 小白的晋级之路 - 第四部分:掌握 Python 列表

Python 小白的晋级之路 - 第五部分:驾驭 Python 元组

Python 小白的晋级之路 - 第六部分:Python 的 if 语句

Python 实战:猜数字与智能计算

Python 小白的晋级之路 - 第七部分:掌握字典的魔法

Python 小白的晋级之路 - 第八部分:探秘 while 循环的精髓

Python 小白的晋级之路 - 第九部分:征服 for 循环的领域

Python 实战:年会抽奖程序,别作弊哈

Python 小白的晋级之路 - 第十部分:探索常用函数的奇妙世界

Python 实战案例:没人能活着离开的游戏

Python 小白的晋级之路 - 第十一部分:探索正则表达式的魔力

Python 实战:天气查询

Python 小白的晋级之路 - 第十二部分:了解常用第三方函数

Python爬取西门子论坛标题,看看大家最近都在讨论什么问题

Python 小白的晋级之路 - 第十三部分:创建函数

Python 实战:字符统计程序

Python 小白的晋级之路 - 第十四部分:输入、输出和格式

Python 实战案例:待办事项列表管理程序

Python 小白的晋级之路 - 第十五部分:读写文件

Python 实战:图片处理

Python 实战:自动生成密码并保存

图片

2024年05月

Tags: