Python学习笔记--异常、模块与包

本文介绍了Python中的异常概念,包括什么是异常、bug的来历,以及如何通过try-except结构捕获和处理异常。详细讲解了基础的捕获方法、捕获指定异常、捕获多个异常和捕获所有异常的情况。此外,还讨论了异常的传递性和模块导入的几种方式,包括导入内置模块、从模块导入特定功能、导入全部功能以及给模块功能命名别名。最后提到了自定义模块的使用和导入,以及Python包和第三方包的管理。
摘要由CSDN通过智能技术生成

(一) 了解异常


1. 异常
程序运行的过程中出现了错误
2. bug
bug就是指异常的意思,因为历史是因为小虫子导致计算机失灵的案例,所以延续至今,bug就代表软件出现错误

"""
例如打开一个不存在的文件
"""
f=open("D:/LINUX.txt","r",encoding="UTF-8")


(二) 异常的捕获方法


1. 程序出现bug后的情况


程序因为一个bug停止运行
对bug进行提醒·,整个程序继续运行


2. 为什么要捕获异常?


在可能发生异常的方法,进行捕获,当出现异常时,提供解决方式,而不是任由其导致程序无法运行
作用:提前假设某处会出现异常,做好提前准备,当真的出现异常的时候,可以有后续手段

"""
演示捕获异常
"""
#基本捕获语法
try:
    f=open("C:/Users/cs/Desktop/LINUX.txt","r",encoding="UTF-8")
except:
    printf("出现异常了,因为文件不存在,我将open的模式改为w的模式")#因为读不到的话 我改为w模式就可以写入这个不存在的文件,就可以读到了
    f=open("C:/Users/cs/Desktop/LINUX.txt","w",encoding="UTF-8")
#捕获指定异常
try:
    print(name)
except NameError as e:      #这里的e是异常对象,可以用printf(e)表示出来
    printf("出现了变量未定义的异常")
#捕获多个异常
try:
    1/0
except (NameError, ZeroDivisionError)as e:
    printf("出现了变量未定义或者除以0的异常错误")
#未设置捕获异常类型,将无法捕获异常
#捕获所有异常
try:
    1/0
except Exception as e: #这句等价于 except:
    printf("出现异常了")
else:
    print("好高兴,没有异常")
finally:
    print("finally表示的是无论是否异常都要执行的代码,例如关闭文件。")
    f.close()
#其中else finally是可选择的 可以不写


(三) 异常综合案例

异常的传递性

def func1():
    print("func1开始执行")
    num = 1/ 0#肯定有异常,除以0的异常
    print("func1结束执行")
#定义一个无异常的方法,调用面的方法
def func2():
    print("func2开始执行")
    func1()
    print("func1开始执行")
#定义一个方法,调用上面的方法
def main():
    try:
        func2()
    except Exception as e:
        print(f"出现异常了,异常的信息是;{e}")
main()
# main会调用func2,func2会调用func1,此时func1中出现了除0异常,
# 于是就会抛到func2,func2又会被main函数调用,,所以异常是有传递性的


(四) Pyhton模块

"""
演示Python的模块导入
"""

# 1.使用import导入time模块使用sleep功能(函数)
import time #导入Python内置的time模块(time.py这个代码文件)
print("你好")
time.sleep(5) #通过.就可以使用模块内部的全部功能(类、函数、变量)
print("我好")

# 2.使用于from导入time的sleep功能(函数)
from time import sleep
print("你好")
sleep(5)
print("我好")

# 3.使用*导入time模块的全部功能
from time import *
print("你好")
sleep(5)
print("我好")

# 4.使用as给特定功能加上别名
import time as t
print("你好")
t.sleep(5)
print("我好")
# 或者  
# from time import sleep as sl
# print("你好")
# sl(5)
# print("我好")

自定义模块

"""
演示自定义模块
"""
#  导入自定义模块使用
import my
my.test(1,2)
# 或者用from
from my import test
test(1,2)

"""
演示自定义模块
"""
# 导入不同模块的同名功能
from my import test
from my1 import test   # my1里面是a-b
test(1,2) #只用了my1


(五) Python包

 

(六) 安装第三类Python包

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值