python异常处理和程序调试:异常问题和常见异常

2022-07-3111:04:06编程语言入门到精通Comments808 views字数 1841阅读模式

写程序的时候不可能是一帆风顺的,经常会出现一些异常的情况,例如我们准备要出门看一场电影,首先是出门,然后步行到电影院,之后看完电影去逛街,逛完街步行返回家中,但是当我们看完电影之后发现外面在下雨,这时候我们就要取消后面逛街的计划返回家中,这里的下雨就是异常情况,所以我们在程序设计的时候应当添加这种处理异常的方案。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26251.html

下面我们先看一个异常问题,代码如下:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26251.html

1
2
3
4
5
number = int(input('请输入一个数字:'))
if 15 / number >= 3:
    print('ok')
else:    
        print('wrong')

输出结果:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26251.html

1
2
3
4
5
6
7
8
9
请输入一个数字:3
ok
请输入一个数字:15
wrong
请输入一个数字:0
Traceback (most recent call last):
  File "C:/Users/test.py", line 2in <module>
        if 15 / number >= 3:
ZeroDivisionError: division by zero

当我们输入的分母为0的时候,我们会发现程序报错了,这说明我们写的程序有问题,由于我们没有考虑到分母为0的时候该怎么处理,因此程序出现了异常,所以我们写程序的时候需要考虑到一些会出现的异常情况,下面我们来学习几种常见的异常情况。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26251.html

    1. KeyError异常文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26251.html

这个是访问字典的键,而键值不存在的时候发生的异常。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26251.html

代码如下:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26251.html

1
2
my_dict = {'dotcpp':123}
print(my_dict['dot'])

异常如下:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26251.html

1
2
3
4
Traceback (most recent call last):
  File "C:/Users/test.py", line 2in <module>
    print(my_dict['dot'])
KeyError: 'dot'

    2. IndexError异常文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26251.html

这种异常在我们学习Python的时候比较常见,当我们访问序列元素的时候,索引值超出范围的时候会触发这种异常机制,代码如下:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26251.html

1
2
my_list = [1,2,3,4,5]
print(my_list[100])

异常如下:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26251.html

1
2
3
4
Traceback (most recent call last):
  File "C:/Users/test.py", line 2in <module>
    print(my_list[100])
IndexError: list index out of range

我们的列表中只存在5个元素,访问超出限制就会引发这种异常。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26251.html

    3. NameError异常文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26251.html

当我们使用一个未定义的变量时会引发此异常,代码如下:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26251.html

1
2
3
name = ['www.dotcpp,com']
print('存在的变量name:',name)
print('不存在的变量dotcpp:',dotcpp)

异常如下:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26251.html

1
2
3
4
5
存在的变量name: ['www.dotcpp,com']
Traceback (most recent call last):
  File "C:/Users/轻烟/PycharmProjects/untitled1/teach/test.py", line 3in <module>
    print('不存在的变量dotcpp:',dotcpp)
NameError: name 'dotcpp' is not defined

    4. TypeError异常文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26251.html

这种异常出现于传递的数据与规定的类型不一致的时候,例如当我们要使用两个整数相加减,这个时候其中一个使用了字符串类型,那么就会引发这种错误。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26251.html

代码如下:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26251.html

1
2
3
= 10
= 'dotcpp'
print(a+b)

异常如下:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26251.html

1
2
3
4
Traceback (most recent call last):
  File "C:/Users/test.py", line 3in <module>
    print(a+b)
TypeError: unsupported operand type(s) for +'int' and 'str'

5. 总结文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26251.html

上面是几种最常见的异常,我们在学习的过程中可能会遇到ValueError、OSError、AttributeError等多种异常,我们在遇到不认识的异常的时候可以通过帮助文档去查询相关内容。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26251.html

  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/ymba/26251.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定