Python基础入门 --- 9.异常、模块

时间:2024-03-29 22:09:52

文章目录

    • 第九章:
      • 9.异常
        • 9.1 异常的捕获
          • 9.1.1 捕获指定异常
          • 9.1.2 捕获多个异常
          • 9.1.3 捕获全部异常
          • 9.1.4 异常else
          • 9.1.5 异常的finally
        • 9.2 异常的传递性
        • 9.3 Python模块
          • 9.3.1 模块的导入
            • import模块名
            • from 模块名 import 功能名
            • from 模块名 import *
            • as定义别名
          • 9.3.2 自定义模块
            • 测试模块
            • __all__变量
        • 9.4 Python包
          • 9.4.1 自定义包
          • 9.4.2 安装第三方包
            • pip - 安装
            • Pycharm - 安装

第九章:

9.异常

概念:检测到一个错误时,解释器就无法继续执行下去,出现了一些错误提示,这就是’异常‘,也就是常说的’BUG‘。

f = open("test.txt", "r", encoding="ETF-8")

在这里插入图片描述

9.1 异常的捕获

作用:在力所能及的范围内,对可能出现的bug,进行提前准备、提前处理。

通常当程序遇到BUG,一般有两种情况:

  • 整个程序因为BUG而停止运行

  • 对BUG进行提醒,程序继续执行

基本语法

try:
   可能发生的错误代码
except:
    如果出现错误所执行的代码
try:
    f = open("test.txt", "r", encoding="UTF-8")
except:
    f = open("test.txt", "w", encoding="UTF-8")
9.1.1 捕获指定异常

基本语法

try:
    print(age)
except:
    print("age变量名称未定义,")

注意

  • 如果执行代码的异常类型与要捕获的异常类型不同,则无法捕获异常

  • 一般try下方只放一行的尝试执行代码

try:
    print(age)
except NameError as e:
    print("出现了变量未定义的异常")
    print(e)常")

1

9.1.2 捕获多个异常
try:
    # print(age)
    1 / 0
except (NameError,ZeroDivisionError ):
    print("出现了变量未定义的异常或除0的异常")
9.1.3 捕获全部异常
try:
    f = open("Python.txt", "r", encoding="UTF=8")
except Exception as e:
    print("出现异常")
9.1.4 异常else

else:如果没有异常所要执行的代码。

try:
    f = open("Python.txt", "w", encoding="UTF=8")
except Exception as e:
    print("出现异常")
else:
    print("没有出现异常")
9.1.5 异常的finally

finally:无论是否异常都要执行的代码。

try:
    f = open("Python.txt", "r", encoding="UTF=8")
except Exception as e:
    print("出现异常")
else:
    print("没有出现异常")
finally:
    f.close()
9.2 异常的传递性
def func01(): # 异常在func01中没有被捕获
    print("func01 - start!")
    num = 1 / 0
    print("func01 - end!")

def func02(): # 异常在func02中没有被捕获
    print("func02 - start!")
    func01()
    print("func02 - end!")

def main(): # 异常再main函数中捕获
    try:
        func02()
    except Exception as e:
        print(e)

注意:所有函数都没有捕获异常时,程序会报错。

9.3 Python模块

模块概念:一个Python文件(.py),模块能定义函数,类和变量,也可包含可执行代码。

模块作用:python中有很多各种不同的模块,每一行都可以帮助我们可以快速实现某些功能。

9.3.1 模块的导入

语法:[from 模板名] import [模板 | 类 | 变量 | 函数 | *] [as 别名]

常用的组合形式

  • import 模块名
  • from 模块名 import 类、变量、方法等
  • from 模块名 import *
  • import 模块名 as 别名
  • from 模块名 import 功能名 as 别名
import模块名

语法

import 模块名
import 模块1, 模块2

模块名.功能名() 
import time
print("start")
time.sleep(5)
print("end")
from 模块名 import 功能名

语法

from 模块名 import 功能名

功能名()
from time import sleep
print("start")
sleep(5)
print("end")
from 模块名 import *

语法

from 模块名 import * 


功能名()
from time import *
print("start")
sleep(5)
print("end")
as定义别名

语法

import 模块名 as 别名 # 模块定义别名
from 模块名 import 功能名 as 别名 # 功能定义别名
# 模块定义别名
import time as tt
print("start")
tt.sleep(5)
print("end")
# 功能定义别名
from time import sleep as sl
print("start")
sl(5)
print("end")
9.3.2 自定义模块

在这里插入图片描述

在这里插入图片描述

from my_module1 import test
from my_module2 import test # 不同模块的同名时,调用的是后面导入的模块功能
test(10, 20)
测试模块

在这里插入图片描述

此时,无论是当前文件,还是其他导入该模板的文件,在运行的时候都会自动执行test函数。

解决方法:在当前文件中使用___main____变量即可。

def test(a, b):
    print(a+b)

if __name__=='_main_':
_':
    test(10, 10)
__all__变量

当使用from xx import *导入时,只能导入该列表的元素

在这里插入图片描述

在这里插入图片描述

9.4 Python包

概念:一个文件夹,该文件夹包含了____init____.py文件,该文件用于包含多个模块文件。

作用:包可以帮助我们管理模块文件,包含多个模块,包的本质依旧是模块。

在这里插入图片描述

9.4.1 自定义包

步骤

  1. 新建包

  2. 新建包内模块

  3. 模块代码

在这里插入图片描述

在这里插入图片描述

在_____init_____.py文件中添加__all__=[‘’],可控制导入的模块列表______

from 包名 import *
模块名.目标
__all__ = ["my_module1"]
9.4.2 安装第三方包
pip - 安装

语法:pip install 包名称

在这里插入图片描述

也可连接国内的网站进行包的安装:

语法:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple 包名称

该链接为清华大学提供的一个网站,可供pip程序下载第三方包。

Pycharm - 安装

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述