异常,面向对象
1.异常可以分为两种一种是编译时错误,这种可以在观看代码的时候解决
另外一种就是运行时错误,只有在编译之后才会显示
2.在处理异常时,常用的格式是
try: #可能出现错误的代码 except: #错误信息 finally:#可添加也可以不添加 #一定执行的代码
3.except可以有很多个,且可以使用except Exceptipn as err:print(err)来显示错误原因
def func(): try: list = [] list.pop() a = input('第一个数:') b = input('第二个数:') s = input('输入运算符:(+ - * /)') if s = '+': return a+b if s = '-': return a-b if s = '*': return a*+b if s = '/': return a/b except ZeroDivisionException as err: print('分母不能为0!',err) except ValueException as err: print('必须输入整数!',err) except Exception as err:#当可能出错代码,在except中没有匹配的时候,会进入到异常范围更大的Exception异常中匹配 print('空列表无法删除!',err) g = func() print(g)
4.try-except-finally,当文件不存在读取会抛异常,但一定会执行finally,无论是否含有return语句
try: stream = open('a1.txt','r') container = srtream.read() except FileNotException as err: print(err) finally: stream.close() #一定会关闭管道
5.面向对象:
1)对象其实就是是一个特征以及行为动作的个体
2)类就是某些相同特征以及行为动作个体的集合
3)属性就是个体的特征
4)方法就是个体的行为动作
类的定义: class 类名: 属性 方法 例如: class Student: name = '小名' age = 20 s = Student()#创建Student类的对象 print(s.name)#输出Student对象的名字信息 print(s.age)#输出Student对象的年龄信息 s.age = 2#修改Student对象s的年龄信息,现在自己开辟的内存中寻找属性,如果有就是用,如果没有就去类中寻找该属性
6.类的方法,初始化方法__init__()
class Student: def __init__(self,name,age): self.name = name self.age = age def eat(self,food): print('{}今年{}岁,喜欢吃{}!'.format(self.name,self.age,food)) def run(self,l): print('{}跑了{}千米!'.format(self.name,l)) s1 = Student('张三',20) s1.eat('红烧肉')#结果为张三今年20岁,喜欢吃红烧肉! s1.run('3')#结果为张三跑了3千米! s1 = Student('李四',21) s1.eat('红烧狮子头')#结果为李四今年21岁,喜欢吃红烧狮子头! s1.run('4')#结果为李四跑了3千米!
7.对象的创建过程
1)先创建类的空间,
2)再就是寻找该类的空间,
3)再申请获得一个对象空间
4)查看有没有__init__()函数,如果有就进行__init__()函数里面的操作,将地址赋值
5)如果没有就开辟内存给对象