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__()函数里面的操作,将地址赋值