学习python仅此一篇就够了(异常,模块与包)

本文详细介绍了Python中的异常处理机制,包括异常的概念、如何使用try-except捕获和处理错误(如FileNotFoundError和ZeroDivisionError),以及异常的传递性。同时,讲解了自定义模块和包的导入方式,指出包是一个包含init.py文件的文件夹,用于组织和复用代码。
摘要由CSDN通过智能技术生成

Python异常,模块与包

什么是异常

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

f = open("D:/12a.txx", "r", encoding="UTF-8")
   f = open("D:/12a.txx", "r")
        ^^^^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: 'D:/12a.txx

捕获异常

基本语法:

try:
	可能发生错误的代码
except:
	如果出现异常执行的代码
	
try:
	print(name)
except  NameError as e::
	print("name变量名称未定义错误")
try:
    f = open("D:/12a.txx", "r", encoding="UTF-8")
except:
    f = open("D:/12a.txx", "w", encoding="UTF-8")
    
try:
    print(name)
except NameError as e:
    print("name未定义")
    print(e) #name 'name' is not defined
    

try:
    1 / 0
except (NameError,ZeroDivisionError) as a:
    print(a) #division by zero
    
 #捕获所有异常   
try:
    1 / 0
except Exception as w:
    print("出错了")
    print(w) #division by zero

finally表示的是无论是否异常都要执行的代码,例如关闭文件

try:
    f = open("D:/12a.txx", "r", encoding="UTF-8")
except:
    f = open("D:/12a.txx", "w", encoding="UTF-8")
else:
    print("没有异常")
finally:
    f.close()

异常的传递

异常是具有传递性的,当函数func()1中发生异常,并且没有捕获处理这个异常的时候,异常就会传递到函数func2()中,当func2()也没有捕获处理这个异常的时候,main函数会捕获这个异常,这就是异常的传递性。

def func1():
    print("开始异常")
    num = 1 / 0
    print("结束执行")

def func2():
    print("func2开始执行")
    func1()
    print("func2结束执行")

def main():
    try:
        func2()
    except Exception as s:
        print(f"异常是{s}") #异常是division by zero
main()

自定义模块

 

import module
module.test(1,2)

什么是python包

从物理上看,包就是一个文件夹,在该文件夹下包含了一个init.py文件,该文件可用于包含多个模块文件;

从逻辑上看,包的本质依然是模块;

import bao.mpdule1
bao.mpdule1.test(1,2)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

元气满满的热码式

感谢您的支持!我会继续努力发布

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值