多继承
1.多继承:子类拥有多个父类,并且具有所有父类的属性和方法
2.语法:
class 子类名(父类名1, 父类名2...)
例子:son继承father和mother
3.特殊情况:如果父类中存在同名的方法,子类对象如果调用方法,会调用父类1的方法,但是应该尽量避免此情况
异常
1.定义:程序停止执行并且提示错误信息的动作
2.捕获异常:某些代码执行结果不知道是否正确,可以用try来捕获异常
try:
尝试执行的代码
except 错误类型1:
针对错误类型1,对应的代码处理
except (错误类型2, 错误类型3):
针对错误类型2 和 3,对应的代码处理
except Exception as result:
print("未知错误 %s" % result)
else:
没有异常才会执行的代码
finally:
无论是否有异常,都会执行的代码
3.异常传递:当函数/方法执行出现异常,会将异常传递给 函数/方法的调用一方如果传递到主程序,仍然没有异常处理,程序才会被终止。所以一般在主函数中增加异常捕获
4.异常错误类型:
1. Exception:所有异常的父类
2. ValueError:类型转换错误
3. ZeroDivisionError:以0作除数
作业1:通过异常捕获,处理两个数的相除
def inputs():
try:
num1=int(input('输入第一个数:'))
num2=int(input('输入第二个数:'))
result=num1/num2
except ValueError:
print('输入非法字符')
except ZeroDivisionError:
print('以0作除数')
except Exception as result:
print('未知错误:%s'%result)
else:
print('%d/%d=%.1f'%(num1,num2,result))
finally:
print('程序结束')
inputs()
输入第一个数:10
输入第二个数:0
以0作除数
程序结束
作业2: 按照控制台提示输入1~3之间任一个数字,程序将输出相应的课程名称。 根据键盘输入进行判断。如果输入正确,输出对应课程名称。如果输入错误,给出错误提示。 不管输入是否正确,均输出“欢迎提出建议”语句。
def inputs():
list=['python课程','Diango课程','Flask课程']
try:
courseId=int(input('请输入课程代号(1-3之间的数字):'))
except ValueError:
print('输入格式不正确')
else:
if courseId<1 or courseId>3:
print('范围必须在1-3之间')
else:
print(list[courseId-1])
finally:
print('欢迎提出建议')
inputs()
请输入课程代号(1-3之间的数字):54
范围必须在1-3之间
欢迎提出建议