当前位置: 首页 > news >正文

Python异常、模块、包

Python异常、模块、包

  • 一、前言
  • 二、捕获异常
    • 基本语法
    • 捕获指定异常
      • 基本语法
    • 捕获多个异常
      • 基本语法
    • 捕获所有异常
      • 基本语法
      • else未出现异常执行
      • finally是否异常都要执行的代码
    • 异常具有传递性
  • 三、模块
    • 模块导入
      • 导入语法
    • 自定义模块
    • __name__变量
    • __all__变量
  • 四、包
    • 前言
    • 包的使用
    • 安装第三方包
      • cmd安装

一、前言

  • 为什么要捕获异常?
    • 我们不是力求程序完美运行,而是在力所能及的范围内,对可能出现的bug,进行提前准备、提前处理(捕获异常)
  • 当我们的程序遇到了bug,那么接下来两种情况
    • 整个程序因为一个bug停止运行
    • 对bug进行提醒,整个程序继续运行

二、捕获异常

基本语法

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

捕获指定异常

基本语法

try:
print(name)
except NameError as e:(as后面接的是别名)
print(“name变量名称未定义错误”)

  • 注意:
    • 如果尝试执行的代码的异常类型和要捕获的异常类型不一致,则无法捕获异常
    • 一般try下方只放一行尝试执行的代码

捕获多个异常

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

基本语法

try:
print(1/0)
except(NameError,ZeroDivisionError):
print(‘ZeroDivision错误或者ZeroDivisionError错误’)

捕获所有异常

基本语法

try:

except Exception as e:

else未出现异常执行

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

finally是否异常都要执行的代码

try:
f=open(‘test.txt’,‘r’)
except Exception as e:
f=open(test.txt",‘w’)
else:
print(‘没有异常,真开心’)
finally:
f.close()

异常具有传递性

def func01():print("这是func01开始")num=1/0print("这是func01结束")
def func02():print("这是func02开始")func01()print("这是func02结束")
def main():try:func02()except Exception as e:print(e)
  • 解析:异常一层一层向上传,传递到当前main()执行的最高层级

三、模块

  • 什么是模块?
  • Python模块(Module) ,是一个Python文件,以.py结尾。模块能定义函数,类和变量,模块里也能包含可执行的代码
  • 模块的作用:每个模块都可以帮助我们快速的实现一些功能,我们可以认为一个模块就是一个工具包,每个工具包中都有各种不同的工具供我们使用进而实现各种不同的功能

模块导入

  • 模块在使用之前需要先导入

导入语法

  • 语法:[from 模块名] import [模块|类|变量|函数|*][as 别名]
  • 常见组合:
    • import 模块名
    • from 模块名 import 类、变量、方法等
    • from 模块名 import *导入模块全部内容
    • import 模块名 as 别名
    • from 模块名 import 功能名 as 别名

自定义模块

  • 命名,自定义模块名必须要符合标识符命名规则
  • 注意:
    • 函数在同一个模块里的名称一样,代码运行后执行后面的语句,前面的my_test被后面的覆盖

__name__变量

  • 模块里面有测试代码,我们import模块的时候,会执行所有的代码

  • 解决办法:

    • __name__是函数的内置变量;在本模块文件自己调用自己,name__的值就是__main
    if __name__=='__main__'#在测试代码前加上这个
    

__all__变量

  • 如果一个模块中有‘all’变量,当使用‘from xxx import *’导入时,只能导入这个列表中的元素
__all__=["test_A"]
def test_A():print("testA")
def test_B():print("testB")

四、包

前言

  • 什么是包?
  • 从物理上看,包就是一个文件假,在该文件夹下包含了一个__init__.py文件,该文件夹可以用于包含多个模块文件,从逻辑上看,包的本质仍然时模块
    在这里插入图片描述

包的使用

基本上跟模块一致

  • 注意:在包里面对*进行限制,我们需要在__init__.py文件里面定义__all__=[ ]

安装第三方包

cmd安装

在这里插入图片描述

  • 这个是在国外的网站下载

在这里插入图片描述

  • 带网址下载

  • 在Pycharm下载第三方包
  • 在这里插入图片描述
  • 在这里插入图片描述
    -在这里插入图片描述

在这里插入图片描述

http://www.dtcms.com/a/553832.html

相关文章:

  • flink 流式窗口
  • 仿京东电商的网站开发智慧团建网站什么时候维护好
  • 23.NAT之Easy-IP
  • Godot游戏开发——C# (一)
  • PyTorch实战:从零搭建CV模型技术文章大纲
  • 高效的DDC可编程控制器风机水泵空调节能控制器公司
  • PIL (Python Imaging Library) 相关方法详解1
  • U-Net 家族全解析
  • 德语网站制作网页设计建网站
  • Windows Linux 子系统 (WSL) 上的 Ubuntu
  • ftp工具下载网站源码教程手机视频wordpress
  • LeetCode 二叉树 437. 路径总和 III
  • 【GoLang】【框架学习】【GORM】4. 使用 BeforeUpdate hook 操作时,出现反射报错
  • 有哪些好点的单页网站公司管理制度完整版
  • 庭田科技亮相成都复材盛会,以仿真技术赋能产业革新
  • 网站安全认证去哪做国内十大咨询公司排名
  • Maven高级-分模块设计与开发
  • markdown转为pdf导出
  • python - day 11
  • 污水处理厂三菱FX5U系列PLC通过Modbus TCP转CCLKIE工业智能网关和多个不同的仪表进行通讯案例
  • 东莞专业网站设计建站公司无锡网站推广优化费用
  • 海南网络公司网站建设wordpress 禁止收录
  • 哪里有学习做网站的html网站模板 免费
  • 网站中的表格phonegap下载
  • JAVA攻防-专题漏洞SPEL表达式SSTI模版Swagger接口Actuator泄露Spring特检
  • vue-day03
  • 高效稳定的命理测算平台:基于Linux+Nginx+PHP+MySQL的技术架构解析
  • 威海做网站哪家好西数网站助手
  • 企业商旅平台推荐:合思——全流程合规管控与生态协同标杆
  • 专业电商网站开发自己做图网站