IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 小新学习Python第八周 异常 模块 包 -> 正文阅读

[Python知识库]小新学习Python第八周 异常 模块 包

我们这周学习Python的的三个小点? 异常 模块? 包

目录

异常

异常和错误的不同

解决异常的方法

①容错代码:允许错误

②异常捕获

else 和 finally语句

主动抛出异常 raise

模块

什么是模块

导入的方法

一,全部的语句都要导入过来

二,导入部分模块的内容

__all__语句

__name__语句

?包


异常

异常和错误的不同

我们在写Python的过程中会出现很多错误和异常

因为我也对错误和异常的定义不太清楚,所以就参考了官网的解释

1. 错误

从软件方面来说,错误是语法或是逻辑上的。语法错误指示软件的结构上有错误,导致不能被解释器解释或编译器无法编译。这些错误必须在程序执行前纠正。当程序的语法正确后,剩下的就是逻辑错误了。逻辑错误可能是由于不完整或是不合法的输入所致;在其他情况下,还可能是逻辑无法生成,计算,或是输出结果需要的过程无法执行。这些错误通常分别被称为域错误和范围错误。

当 Python 检测到一个错误时,解释器就会指出当前流已经无法继续执行下去,这时候就出现了异常。

2. 异常

对异常的最好描述是: 它是因为程序出现了错误而在正常控制流以外采取的行为。这个行为又分为两个阶段: 首先是引起异常发生的错误,然后是检测(和采取可能的措施)阶段。

总的来说,我觉得错误就是在打代码的时候出现的一些语法错误,逻辑错误

? ? ? ? ? ? ? ? ? ? ? ? ? ?异常是在执行程序的时候由于代码的错误而报错?

而异常也有很多的类型,举一些例子

TypeError? ?类型异常? ? ? 1 + “2”

IndexError? ?索引异常? ? ? li = [1,2]? ? ?print(li[2])

keyEorror? ?键异常

解决异常的方法

解决异常的方法有很多种:

①容错代码:允许错误

def fund(x,y):
    if y != 0:
        return (x/y)
    return "除数不为零"
print(fund(2,1))

这里就是把y等于0这种异常给他考虑进去,这样就不会让程序报错

②异常捕获

def funa(x):
    print(1/x)
try:
    funa(0)
except Exception as e:
    print(e)

格式为:

try:?

? ?可能要出现异常的代码

except? 异常的类型? ?若+as +异常的别名? ?相当于给异常的专业名字起别名

? print("要说的话? 或者直接说别名,告诉别人的异常类型")

而后面可以接很多个except

要是不知道是什么类型的异常,则可以用上面代码写的 Exception 这个是万能异常

else 和 finally语句

else:不异常之后才会被执行的语句,跟在所有except后面

finally:无论异常与否都执行的语句,一定要放到最后,可以省略

主动抛出异常 raise

为什么要主动抛出异常呢?

举个例子

def funa(x):
    print(f"你年龄{x}岁")
funa(-18)

这种就是典型的逻辑错误

我们可以把这种逻辑错误当做异常,并可以自创这个异常,并报错

接着抛出异常,在外面用try except 来捕获异常

def funa(age):
    if age <= 0 or age >= 120:
        raise ValueError("值错误")
    else:
        print(f"你已经{age}岁了")


try:
    funa(-15)
except ValueError as e :
    print(e)

在raise语句中,是自己创造了一个异常

①若不要下面try except语句,且调用funa(-14),则在运行过程中会报错,即有红字出现

这是因为异常没有被捕获

②若有下面的try except语句,则会捕获异常,这样我们在try下面的funa()输入值后

则会开始运行funa的代码,当满足条件后就产生异常,然后被捕获

输出except语句下的代码,提醒值有问题。

所以当我们要运行的时候,代码都要写在try这个大框架下面

这样才能及时捕捉到错误,返回提醒语句,且不会中断下面程序的运行

模块

什么是模块

一些重复性的代码全部写到一个文件里,接着别人用一些代码调用你文件的一些代码

那这个文件就叫做模块

而Python也有自己的内置模块,可以用import语句导入即可

还有就是第三方模块,相当于玩游戏要下不同的mol,需要下载

自定义模块就是自己新建的一个py语句

接下来是

导入的方法

一,全部的语句都要导入过来

①import? 模块名? ? ? (导入模块)

其中 import 可以理解为导入的意思

而 import? 模块名? 这句代码就包含了 模块名里面的代码

除非后面会引用模块名的变量

我在一个叫caogao1的文件里编写下面的程序:

a = 10
def funa(x):
    print("hello world")
    print(x)

而在caogao2的一个新建文件里编写下面的代码

import caogao1
print(caogao1.a)
print(caogao1.funa(2))

因此出来的结果就是

10
hello world
2

?说明可以调用其他文件的变量参数,和函数代码

全部导入的时候,要用导入的函数时,要在前面加? ?模块名.

②import? 模块名? as? 别名

这种就是给模块名一个别号,这是在模块名太长的时候就可以这么用,比较简便

这里就不多介绍

③import? 模块名1? 模块名2

即同时导入两个模块,这里也不多介绍

二,导入部分模块的内容

①from? 模块名? import? 函数名/变量名? ? (as? ?别名)

from 可以理解为从哪里的意思

在gaocao1文件的代码没变

在caogao2文件的代码变为

from caogao1 import a
print(a)

这个时候其他文件的变量就不用加? ?模块名.

②from 模块名? import*

这个时候就是和import一样,导入所有

__all__语句

在要被导入的文件里写

__all__ = ["a","fund"]

代表着我只能给别人展示这几个变量

这个可以保护隐私吧,具体怎么用我也不清楚

__name__语句

?要是在要被导入的文件打出

print(__name__)

会输出__main__,这就代表着你上面的代码是在当前文件运行

而要是导入文件后,就不会出现这种情况

所有可以在被导入的文件里输入

a = 10
def funa(x):
    print("hello world")
    print(x)
if __name__ == "__main__":
    print("这里的代码是在这个文件没被导出的情况下才执行的代码")

?包

相当于文件夹,比模块更高一级的存在

在pycharm里创建包

在new之后点击 python package ,这个时候就会自动生成一个__init__.py的文件

库>包>模块

硬盘>文件夹>文件

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-11-17 12:43:00  更:2021-11-17 12:45:19 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 1:24:40-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码