异常:
try:可能引起异常的代码。
except:对异常的处理代码。
Except后面可以跟你要捕捉的错误类型 如:IOError,TypeError,等等都可以,但是,一旦你不知道你要捕捉的错误是什么,要怎么办呢,所以有一个Exception的存在,它代表了所有的错误。如下图:

捕捉异常try的嵌套:

Try的志向循序: 从上到下执行,如果发生错误了try出了错误,后面的语句后面的语句就不会执行了,走到了错误输出的地方。
try不影响后面的语句,finally后面的语句不管是否try出错误都会执行。当你执行ctrl+c退出时依然会try出异常
raise抛出自定义异常:
你可以用raise语句来引发一个异常。异常/错误对象必须有一个名字,且它们应是Error或Exception类的子类

异常处理中抛出异常:

模块:
导入模块,例如import os, import sys,
模块的导入方式:1.import模块名 2.from ...import ...
Import导入的时候如果下面要使用时 需要用 模块名.函数名
而from ...import ...导入使用后,只需要调用函数名即可。自己写的模块导入时,一般要用from ...import ...这一种方式导入的受路径的限制小一点,当你的文件移动时,依然可以执行。

模块的制作和上传:
1.

2.

3.

4.

模块的安装和使用:

From...import导入:
1.单前置
_two Sioux的不能被from导入,类的对象和子类意义访问私有化的数据;

双前置:
避免与子类中的
1,[endif]子类不能继承,不能访问
2,[endif]子类向其中导入,只会在子类中创建一个相同名字的私有属性
Property:


Property的第二种方法:

判等==与 is的区别:
is 是比较两个引用 是否指向了同一个对象(引用比较)。
== 是比较两个 对象是否相等。
cp拷贝 与 deepcopy 深拷贝的区别:

深拷贝deepcopy对于类似(列表,字典 等可变的数据类型)时,会创建新的内存地址
像(元组,数字)就不可变
应用场景:copy与 deepcopy 拷贝的的内容跟随自己的变化
普通拷贝a = b拷贝的后的内容会变化

Copy与deepcopy 虽然在拷贝的类型是 列表和字典 的情况下会变,但是它们的id也不相同
普通拷贝:a = b
Copy拷贝: b = copy.copy(a)
Deepcopy:b = copy.deepcopy(a)
列表的推导式:

元组不可以:

2.第二种:

3.第三种for + for
