异常 包 模块

本文详细介绍了Python中的异常处理机制,包括异常的概念、捕获异常的不同形式(不处理、指定异常和多个异常)、以及模块的导入、使用、自定义和第三方包的安装。重点讲解了try-except结构和如何处理可能出现的错误。
摘要由CSDN通过智能技术生成

1.异常

什么是异常:

当检测到一个错误时,python解释器就无法继续执行,反而出现了一个错误提示,这就是所谓的“异常”,也就是bug

2.捕获异常

1.为什么要捕获异常

没有完美的查询,任何程序在运行的过程中,都有可能存在bug,我们不能保证写出没有bug的代码而是在力所能及的范围内,对可能出现的bug,进行提前准备,提前处理.这种行为叫捕获异常。

2.对bug的处理

方式1:不处理,程序报错终止
方式2:对bug提示,程序继续运行。
方式3.基本形式:

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

如:

try:
    open('ab.txt', 'r', encoding='utf-8')
except:
    open('ab.txt', 'w', encoding='utf-8')

意义为:以只读的方式打开文件,如果不存在 ab.txt文件,则出现异常执行以写入的方式打开文件,因为,以写入的方式,即使文件不存在,也会创建一个新文件。
注:可以捕获所有异常

4.捕获指定异常

形式:

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

如:

try:
	# print(name)
	1/0
except NameError as e:
	print("名字未定义就使用")

结果是:ZeroDivisionError: division by zero
注:仍然要报错,这就是捕获指定异常 该except只能捕获NameError 的异常
注:其中的e就是异常的具体信息,如NameError 中的e信息为name ‘name’ is not defined

5.捕获多个异常

形式:

try:
  可能发生错误的代码
except (指定错误1,指定错误2....:
   如果出现异常执行的代码

如:

try:
	print(name)
	1 / 0
except (NameError, ZeroDivisionError) as e:
	print(e)

6.捕获所有异常
形式:

try:
    可能发生错误的代码
except:
    如果出现异常执行的代码
# 或者
try:
    可能发生错误的代码
except Exception as e:
	如果出现异常执行的代码

注:一般使用第二种异常,第二种异常又叫顶级异常。

7.异常else

形式:

try:
    可能发生错误的代码
except Exception as e:
    如果出现异常执行的代码
else:
    如果没有出现异常执行的代码

注:else是可选的,可以写也可以不写。

8.异常的finally

形式:

try:
    可能发生错误的代码
except Exception as e:
    如果出现异常执行的代码
else:
    如果没有出现异常执行的代码
finally:
    无论是否出现异常都要执行的代码

注:finally是可选的,可以写也可以不写。

异常的传递

意义:捕获异常并不需要去捕获最底层的异常,由于异常的传递我们可以在顶层直接捕获
注:异常具有传递性
如:

def func1():
    num=1/0
    print("func1")
def func2():
    func1()
    print("func2")

注:很明显func1产生了除数为0的错误,但是在未调用func1时程序并未发生错误,而调用了func2后 异常的传递发生报错。

python的模块

1.什么是python的模块

是一个python文件 以.py结尾, 包含了函数 类 变量等 ,我们可以通过导入的方式去使用模块中包含的内容

2.模块的导入

形式: [from 模块名] import [模块名|类|变量|函数|*] [as 别名]
注:[ ] 的内容是可选的

# 常用的形式如:
import 模块名
from 模块名 import 类、变量、方式等
from 模块名 import *
from 模块名 import 功能名 as 别名
import 模块名 as 别名
3.模块的使用
1. 如:

import time
注:导入python的内置模块time.py
time.sleep(时间)
注:调用的方式是 模块.方法(参数) 其中的点 代表着层级

2. 如果我们只想使用模块中每一功能
 # 通过from导入time的sleep方法
 from time import sleep

 print("程序开始")
 # 调用sleep方法  作用 暂停
 sleep(5)
 print("程序结束")

注:我们直接导入sleep方法 所以我们使用时就不能用time.sleep()的方式

3. 如果我们想使用模块中全部功能
 # 通过from导入time全部功能
 from time import *

 print("程序开始")
 # 调用sleep方法  作用 暂停
 sleep(5)
 print("程序结束")
4.给导入的模块取别名
 import time as t

 print("程序开始")
 # 调用sleep方法  作用 暂停
 t.sleep(5)
 time.sleep(5)
 print("程序结束")

注:取别名并不是只能用别名

自定义模块

注:和模块的使用是完全一样,唯一的区别在于,一个是python库里面的一个是自己写的,在同一文件下。
注:如果我们导入模块功能时,发现两个功能名一样的话,后出现的会覆盖先出现的

main 变量
#形式:
if name == 'main':

代码块
作用是当代码块是测试调用功能的代码,在我们导入该功能时在原模块测试功能的代码也执行,为了保留测试代码,我们引入了main变量 该变量的使用是 当你执行原模块的测试时 name变成main if为true执行测试,但是当你导入功能name不变则不执行测试代码。

all 变量
# 形式:
# 模块
all=['add']
def add(x, y):
print(x + y)
def div(x,y):
print(x - y)
# 执行程序
from Test1 import *
add(1,2)
div(1,2)

注:当我们import*时 我们导入的功能只能使用all包含的功能 即add方法可用,div不可用

python包

1. 什么python包

从物理上看 python包就是一个存在_init_.py文件的文件夹,包含着.py文件
注:和模块的导入基本一样,区别在于__all__变量在_init_.py 文件内写 而不是在模块中写
注:init.py是必须存在的

2.安装第三方包
1.什么是第三方包
包是由第三方个人或团队开发出来的,免费供所有人使用,Node.js 中的包都是免费且开源的,不需要付费即可免费下载使用
2. 安装第三方包 pip
步骤:
    1.打开命令提示符(win+r)
    2.输入 pip install 要安装的第三方包名
    注:为什么pip默认链接的网络是外国的所以下载网速较慢
    所以我们可以通过:
    pip install -i https://pypi.tuna.tsinghua.edu.cn/simple 要安装的第三方包名
或者
通过pycharm直接安装
  • 21
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值