Python学习 day05(异常、模块导入、包)

异常

  • 为什么要捕获异常

    • 当程序遇到了BUG,如果不对BUG进行手动捕获,那么整个程序就会因为一个BUG而停止运行,这在有些情况下是会造成很大的损失,但是如果我们进行了手动捕获,那么整个程序会继续运行
    • 捕获异常的作用在于:提前假设某处会出现异常,做好准备,如果出现异常,就执行相对应的代码
  • 捕获所有异常,写法一:
    在这里插入图片描述
    例如:
    在这里插入图片描述

  • 捕获所有异常,写法二:
    在这里插入图片描述

  • 捕获指定异常:
    在这里插入图片描述
    例如:
    在这里插入图片描述

  • 捕获多个异常:
    在这里插入图片描述
    例如:
    在这里插入图片描述

  • 异常else:
    在这里插入图片描述

  • 异常finally:
    在这里插入图片描述
    例如:
    在这里插入图片描述

try:
# 表示这段代码有可能出现异常,但我也不确定
except:
# 如果try内的代码出现了异常,那么我用except来进行捕获,并执行except内的代码
else:
# 如果try内的代码没有出现异常,那么我执行else内的代码 
finally:
# 无论try内的代码有没有异常,我都要执行finally内的代码

# try和except是必须写且要成对出现的,而else和finally是可写可不写的
  • 异常的传递性
    • 基于函数之间的调用方式,异常会一层一层的向上传递,直到传递到我当前执行的最高的层级,如果在最高的层级没有调用try,程序就会直接抛出异常,如果调用try,就会尝试捕获
    • 因此,如果想要捕获异常,并不需要定位到出现异常的那句代码,只需要函数之间存在调用关系,我们在最顶层的调用处,依然可以运行try进行捕获,例如:
      在这里插入图片描述在这里插入图片描述

模块导入

  • 什么是模块:
    在这里插入图片描述
  • 模块的导入方式:
    在这里插入图片描述
    • [ ]表示可以省略
      在这里插入图片描述
    • 通过 . 可以使用模块内部的全部功能(类、函数、变量),且通过 . 来确定层级关系
    • 有时我们不需要使用模块内部的全部功能,就可以使用以下代码来导入模块中的某个具体方法,这种写法不需要 . ,可以直接写方法名
      在这里插入图片描述
    • 以下的导入方法,不需要 . 也可以使用模块中的全部方法
      在这里插入图片描述
    • 通过as 别名,可以更方便的使用模块
      请添加图片描述
    • 模块的导入一般写在代码文件的开头位置

自定义模块

  • 由于每个Python文件都可以作为一个模块,所以如果想要自定义模块,那么对应的文件名必须要符合标识符命名规则,例如:
    在这里插入图片描述
  • 注意事项:当导入多个模块的时候,且模块内有同名功能,当调用这个同名功能的时候,调用的是后面导入的模块的功能,如下:
    在这里插入图片描述
  • _ _ main _ _:
    • Python文件会内置一个_ _ name _ 的变量,当我们右键运行该文件时,这个文件是main文件,即它的 _ name _ 就等于 _ main _ ,但我们右键运行其他文件的时候,该文件不是main文件,即它的 _ name _ _ 不是_ _ main _ _,如下:
    • 如果我们不把调试代码写在 if _ _ main _ _ == ’ _ _ main _ _ ': 内部,那么在我们导入模块的时候,调试代码会一并执行
      在这里插入图片描述
  • _ _ all _ _:
    • _ _ all _ 是一个列表,如果一个模块文件中有 _ all _ _,当使用" from xxx import * "导入时,只能导入这个列表中的元素,如下:
      在这里插入图片描述
    • 但是,如果用" from xxx import xxx "导入时,可以导入_ _ all _ _内没有的元素

* 从物理上看,包相当于一个文件夹,里面包含一个_ _ init _ _ .py文件,还可以存放许多Python的模块(代码文件),通过包,逻辑上将一批模块归为一类,方便管理。如果去掉_ _ init _ _.py,那么这个包就真的变为一个文件夹。 

在这里插入图片描述
* 创建包后,包内会自动创建_ _ init _ _.py文件

  • 导入包
    在这里插入图片描述
    • 这种情况下,需要包名.模块名.功能名
    • 或者 from 包名 import 模块名
    • 这种情况下,不用包名,直接模块名.功能名就行
      在这里插入图片描述
    • 或者 from 包名.模块名 import 功能名
    • 这种情况下,不用包名.模块名,直接用功能名就行
      在这里插入图片描述

在这里插入图片描述
* _ _ all _ _ = [ ] ,[ ]里用“ ”或’ '都可以

pip安装第三方包

1. pip install 包名称 
# 国外官网安装
2. pip install -i https://pypi.tuna.tsinghua.edu.cn/simple 包名称
# 国内清华镜像网安装
  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

丿罗小黑

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值