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)