Bug的由来及分类
语法错误
知识点不熟练:练习练习再练习
思路不清晰:
(1)使用print函数(2)使用#暂时注释
Pathon中的异常处理机制
try:
可能会出现异常的代码
except 异常类型:
异常处理代码(报错后执行的代码)
try:
可能会出现异常的代码
except 异常类型A:
异常处理代码(报错后执行的代码)
except 异常类型B:
异常处理代码(报错后执行的代码)
点击查看代码
示例7-9try-except的使用
try:
num1=int(input('请输入一个整数:'))
num2 = int(input('请输入一个整数:'))
result=num1/num2
print('结果为:',result)
except ZeroDivisionError:
print('除数为0')
示例7-10多个except结构
try:
num1 = int(input('请输入一个整数:'))
num2 = int(input('请输入一个整数:'))
result = num1 / num2
print('结果为:', result)
except ZeroDivisionError:
print('除数不能为0')
except ValueError:
print('不能将字符串转为数字')
except BaseException:
print('未知异常')
try:
可能会出现异常的代码
except 异常类型:
异常处理代码(报错后执行的代码)
else :
没有抛异常处理代码
try:
可能会出现异常的代码
except 异常类型:
异常处理代码(报错后执行的代码)
else :
没有抛异常处理代码
finally:
无论是否产生异常都要出来的代码
点击查看代码
示例7-11try-execpt-else的使用
try:
num1 = int(input('请输入一个整数:'))
num2 = int(input('请输入一个整数:'))
result = num1 / num2
except ZeroDivisionError:
print('除数不能为0')
except ValueError:
print('不能将字符串转为数字')
except BaseException:
print('未知异常')
else:
print('结果为:', result)
示例7-12try-except-else-finally的使用
try:
num1 = int(input('请输入一个整数:'))
num2 = int(input('请输入一个整数:'))
result = num1 / num2
except ZeroDivisionError:
print('除数不能为0')
except ValueError:
print('不能将字符串转为数字')
except BaseException:
print('未知异常')
else:
print('结果为:', result)
finally:
print('程序执行结束')
一、raise关键字
raise [Exception类型(异常描述信息)]
点击查看代码
示例7-13raise关键字的使用
try:
gender=input('请输入您的性别:')
if gender!='男' and gender!='女':
raise Exception('性别只能为男或女')
else:
print('您的性别是:',gender)
except Exception as e:
print(e)
二、Pathon中常见的异常类型
点击查看代码
示例7-14常见的异常类型的产生
#(1)ZeroDivisionError
#print(10/0)
#(2)IndexError
# lst=[10,20,30,90]
# print(lst[4])
#(3)KeyError
# d={'name':'ysj','age':'20'}
# print(d['gender'])
#(4)NameError
#print(hello)
#(5)SyntaxError
#print('hello)
#(6)ValueError
#print(int('a'))
#(7)AttributeError
# i=10
# print(i.name)
#(8)TypeError
# print('hello'+123)
#(9)IndentationError
#print('hello')
1、 最大异常放最后
2、try...except如果在except后面不添加异常类型为捕获所有异常
3、捕获所有异常还可以用try...except Exception as e
Pycharm的程序调试
调试步骤:
1、设置断点
2、进入调试窗口
3、开始调试
点击查看代码
示例7-15被调试的代码
i=1
while i<10:
print(i)
i+=1#改变变量的值
点击查看代码
实战一:
try:
score=int(input('请输入分数:'))
if 0<=score<=100:
print('分数为:',score)
else:
raise Exception('分数不正确')
except Exception as e:
print(e)
点击查看代码
实战二
try:
a=int(input('请输入第一条边:'))
b=int(input('请输入第二条边:'))
c=int(input('请输入第三条边:'))
if a+b>c and c+b>a and a+c>b:
if abs(a-b)<c and abs(a-c)<b and abs(b-c)<a:
print(f'三角形边长为a={a},b={b},c={c}')
else:
raise Exception(f'a={a},b={b},c={c},不能构成三角形')
except Exception as e:
print(e)