自学内容网 自学内容网

Python进阶 异常-模块-包

目录

了解异常

异常的捕获

捕获常规异常

捕获指定异常

捕获多个异常

捕获全部异常

异常else

finally

练习

捕获常规异常

 捕获指定异常

e就是异常的信息

捕获多个异常

捕获全部异常

异常else

finally

异常的传递性

模块的概念和导入

基本语法

import 模块名

from模块名import功能名

from模块名impor *

as定义别名

模块定义别名

功能定义别名

练习

import 模块名

from模块名import功能名

from模块名import *

as定义别名

模块定义别名

功能定义别名

自定义模块并导入

  if _ _ name_ _ ='_ _ main _ _' 

_ _all _ _

自定义Python包

安装第三方包


了解异常

异常就是bug

异常的捕获

捕获常规异常

        try:
            #可能发生错误的代码
        except:
            #如果出现异常要执行的代码

捕获指定异常

        try:
           print(name);
        except NameError as e:
            print("name变量名称未定义错误");

如果尝试执行的代码的异常类型和要捕获的异常类型不一致,则无法捕获异常

一般try下方只放一行要执行的代码

捕获多个异常

当捕获多个异常时,可以把要捕获的异常类型的名字放到except后,并用元组的方式进行书写

        try:
           print(1/0);
        except (NameError,ZeroDivisionError):
            print("出现异常");

捕获全部异常

Exception:顶级的异常

        try:
    
        except Exception as e:
            print("出现异常了");

异常else

else表示的是如果没有异常要执行的代码

        try:

        except Exception as e:
            print("出现异常了");
        else:
            print("没有出现异常");

finally

表示无论异常都要执行的代码

        try:

        except Exception as e:
            print("出现异常了");
        else:
            print("没有出现异常");
        finally:
            print("Hello,world");

练习

捕获常规异常

#f = open("D:\ACM\算法基础\pppython.txt","r",encoding="UTF-8");
try:
    f = open("D:\ACM\算法基础\pppython.txt", "r", encoding="UTF-8");
except:
    print("出现异常,文件不存在,换为w模式打开");
    f = open("D:\ACM\算法基础\pppython.txt", "w", encoding="UTF-8");

 捕获指定异常

#f = open("D:\ACM\算法基础\pppython.txt","r",encoding="UTF-8");
try:
    print(name);
except NameError as e:
    print("出现变量未定义异常");
    #f = open("D:\ACM\算法基础\pppython.txt", "w", encoding="UTF-8");

e就是异常的信息

#f = open("D:\ACM\算法基础\pppython.txt","r",encoding="UTF-8");
try:
    print(name);
except NameError as e:
    print("出现变量未定义异常");
    print(e);
    #f = open("D:\ACM\算法基础\pppython.txt", "w", encoding="UTF-8");

捕获多个异常

try:
    print(1/0);
except (NameError,ZeroDivisionError) as e:
    print("出现了变量定义错误 或者 除以0的异常错误")

捕获全部异常

try:
    print(1/0);
except Exception as e:
    print("出现异常了");

异常else

try:
    print(1);
except Exception as e:
    print("出现异常");
else:
    print("我是e,是没有异常的时候执行的代码");

finally

表示无论是否异常都要执行的代码

例如:关闭文件f.cose()

try:
    print(1);
except Exception as e:
    print("出现异常");
else:
    print("我是e,是没有异常的时候执行的代码");
finally:
    print("必须执行这一条代码");

异常的传递性

def fun1():
    print("fun1 开始执行");
    num = 1 / 0;
    print("fun1 结束执行");
def fun2():
    print("fun2 开始执行");
    fun1();
    print("fun2 结束执行");

def main():
    fun2();

main()

用来捕获异常

def fun1():
    print("fun1 开始执行");
    num = 1 / 0;
    print("fun1 结束执行");
def fun2():
    print("fun2 开始执行");
    fun1();
    print("fun2 结束执行");

def main():
    try:
        fun2();
    except Exception as e:
        print(f"出现异常,异常的信息是{e}");
    fun2();

main()

模块的概念和导入

基本语法

【from 模块名】 import 【模块 | 类 |变量 | 函数 | *】【as 别名】

【】:可选的意思

*:导入全部内容

import 模块名

基本语法:

        import 模块名

        import 模块名1,模块名2

time.sleep:通过“ . ”就可以使用模块内的全部功能

from模块名import功能名

基本语法:

        from 模块名 import 功能名

        功能名

from模块名impor *

基本语法:

        from 模块名 import *

        功能名

as定义别名

模块定义别名

        import 模块名 as 别名

功能定义别名

        from 模块名 import 功能 as 别名

练习

import 模块名

import time;
print("开始");
time.sleep(5);
print("结束");

from模块名import功能名

from time import sleep
print("开始");
sleep(5);
print("结束");

from模块名import *

from time import *
print("开始");
sleep(5);
print("结束");

as定义别名

模块定义别名
import time as ss
print("你好");
ss.sleep(5);
print("结束");

功能定义别名
from time import sleep as ss
print("开始");
ss(5);
print("结束");

自定义模块并导入

模块名字要符合命名规则

  if _ _ name_ _ ='_ _ main _ _' 

        if _ _ name_ _ ='_ _ main _ _' :

                test(1,2)

        只有在函数库里面才会运行

_ _all _ _

是一个列表

如果当前模块文件里面有一个_ _all _ _变量

当使用from xxx import *来导入的时候,只能导入这个列表中的元素

        _ _all _ _=【test_A】

import monkey
monkey.king();
def king():
    print("猴哥!你好!!");

自定义Python包

导入包:

import 包名.模块名

包名 . 模块名 . 目标

import my_package.my_module1
import my_package.my_module2

my_package.my_module1.info_print1()
my_package.my_module2.info_print1()
def info_print1():
    print("我是模块1");
def info_print1():
    print("我是模块2");

安装第三方包

可以在命令提示符里面写python


原文地址:https://blog.csdn.net/weixin_73793099/article/details/140459626

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!