Python基础入门 --- 9.异常、模块

文章目录

    • 第九章:
      • 9.异常
        • 9.1 异常的捕获
          • 9.1.1 捕获指定异常
          • 9.1.2 捕获多个异常
          • 9.1.3 捕获全部异常
          • 9.1.4 异常else
          • 9.1.5 异常的finally
        • 9.2 异常的传递性
        • 9.3 Python模块
          • 9.3.1 模块的导入
            • import模块名
            • from 模块名 import 功能名
            • from 模块名 import *
            • as定义别名
          • 9.3.2 自定义模块
            • 测试模块
            • __all__变量
        • 9.4 Python包
          • 9.4.1 自定义包
          • 9.4.2 安装第三方包
            • pip - 安装
            • Pycharm - 安装

第九章:

9.异常

概念:检测到一个错误时,解释器就无法继续执行下去,出现了一些错误提示,这就是’异常‘,也就是常说的’BUG‘。

f = open("test.txt", "r", encoding="ETF-8")

在这里插入图片描述

9.1 异常的捕获

作用:在力所能及的范围内,对可能出现的bug,进行提前准备、提前处理。

通常当程序遇到BUG,一般有两种情况:

  • 整个程序因为BUG而停止运行

  • 对BUG进行提醒,程序继续执行

基本语法

try:
   可能发生的错误代码
except:
    如果出现错误所执行的代码
try:
    f = open("test.txt", "r", encoding="UTF-8")
except:
    f = open("test.txt", "w", encoding="UTF-8")
9.1.1 捕获指定异常

基本语法

try:
    print(age)
except:
    print("age变量名称未定义,")

注意

  • 如果执行代码的异常类型与要捕获的异常类型不同,则无法捕获异常

  • 一般try下方只放一行的尝试执行代码

try:
    print(age)
except NameError as e:
    print("出现了变量未定义的异常")
    print(e)常")

1

9.1.2 捕获多个异常
try:
    # print(age)
    1 / 0
except (NameError,ZeroDivisionError ):
    print("出现了变量未定义的异常或除0的异常")
9.1.3 捕获全部异常
try:
    f = open("Python.txt", "r", encoding="UTF=8")
except Exception as e:
    print("出现异常")
9.1.4 异常else

else:如果没有异常所要执行的代码。

try:
    f = open("Python.txt", "w", encoding="UTF=8")
except Exception as e:
    print("出现异常")
else:
    print("没有出现异常")
9.1.5 异常的finally

finally:无论是否异常都要执行的代码。

try:
    f = open("Python.txt", "r", encoding="UTF=8")
except Exception as e:
    print("出现异常")
else:
    print("没有出现异常")
finally:
    f.close()
9.2 异常的传递性
def func01(): # 异常在func01中没有被捕获
    print("func01 - start!")
    num = 1 / 0
    print("func01 - end!")

def func02(): # 异常在func02中没有被捕获
    print("func02 - start!")
    func01()
    print("func02 - end!")

def main(): # 异常再main函数中捕获
    try:
        func02()
    except Exception as e:
        print(e)

注意:所有函数都没有捕获异常时,程序会报错。

9.3 Python模块

模块概念:一个Python文件(.py),模块能定义函数,类和变量,也可包含可执行代码。

模块作用:python中有很多各种不同的模块,每一行都可以帮助我们可以快速实现某些功能。

9.3.1 模块的导入

语法:[from 模板名] import [模板 | 类 | 变量 | 函数 | *] [as 别名]

常用的组合形式

  • import 模块名
  • from 模块名 import 类、变量、方法等
  • from 模块名 import *
  • import 模块名 as 别名
  • from 模块名 import 功能名 as 别名
import模块名

语法

import 模块名
import 模块1, 模块2

模块名.功能名() 
import time
print("start")
time.sleep(5)
print("end")
from 模块名 import 功能名

语法

from 模块名 import 功能名

功能名()
from time import sleep
print("start")
sleep(5)
print("end")
from 模块名 import *

语法

from 模块名 import * 


功能名()
from time import *
print("start")
sleep(5)
print("end")
as定义别名

语法

import 模块名 as 别名 # 模块定义别名
from 模块名 import 功能名 as 别名 # 功能定义别名
# 模块定义别名
import time as tt
print("start")
tt.sleep(5)
print("end")
# 功能定义别名
from time import sleep as sl
print("start")
sl(5)
print("end")
9.3.2 自定义模块

在这里插入图片描述

在这里插入图片描述

from my_module1 import test
from my_module2 import test # 不同模块的同名时,调用的是后面导入的模块功能
test(10, 20)
测试模块

在这里插入图片描述

此时,无论是当前文件,还是其他导入该模板的文件,在运行的时候都会自动执行test函数。

解决方法:在当前文件中使用___main____变量即可。

def test(a, b):
    print(a+b)

if __name__=='_main_':
_':
    test(10, 10)
__all__变量

当使用from xx import *导入时,只能导入该列表的元素

在这里插入图片描述

在这里插入图片描述

9.4 Python包

概念:一个文件夹,该文件夹包含了____init____.py文件,该文件用于包含多个模块文件。

作用:包可以帮助我们管理模块文件,包含多个模块,包的本质依旧是模块。

在这里插入图片描述

9.4.1 自定义包

步骤

  1. 新建包

  2. 新建包内模块

  3. 模块代码

在这里插入图片描述

在这里插入图片描述

在_____init_____.py文件中添加__all__=[‘’],可控制导入的模块列表______

from 包名 import *
模块名.目标
__all__ = ["my_module1"]
9.4.2 安装第三方包
pip - 安装

语法:pip install 包名称

在这里插入图片描述

也可连接国内的网站进行包的安装:

语法:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple 包名称

该链接为清华大学提供的一个网站,可供pip程序下载第三方包。

Pycharm - 安装

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/500653.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2024年水电站大坝安全监测工作提升要点

根据《水电站大坝运行安全监督管理规定》(国家发改委令第23号)和《水电站大坝运行安全信息报送办法》(国能安全〔2016〕261号)的相关规定、要求,电力企业应当在汛期向我中心报送每日大坝汛情。近期,全国各地…

帆软报表踩坑日记

最近公司项目要是使用报表,公司使用的是帆软这个国产软件,自己也是学习使用,在使用的过程中记一下问题以及解决方式 公司使用的是帆软8这个版本,比较老了。 首先是表格中的扩展,就是当我们根据数据库查询数据然后放到表…

谷粒商城实战(007 压力测试)

Java项目《谷粒商城》架构师级Java项目实战,对标阿里P6-P7,全网最强 总时长 104:45:00 共408P 此文章包含第141p-第p150的内容 简介 安装jmeter 安装jmeter 使用中文 这样写就是200个线程循环100次 一共是2万个请求 介绍线程组 添加请求 可以是htt…

供应链销售数据分析丨跟张良均老师学大数据人工智能(第二期)

师傅带练 项目背景 通过大数据分析怡亚通供应链商品的销售数据,分析不同店铺地址、不同销售季节和不同产品的销售数据,可以给于客户铺货支持以及经营策略建议,帮助怡亚通更好地优化库存管理、供货策略和市场营销活动,从而提升销…

计算机视觉的应用25-关于Deeplab系列语义分割模型的应用场景,以及空洞卷积的介绍

大家好,我是微学AI,今天给大家介绍一下计算机视觉的应用25-关于Deeplab系列语义分割模型的应用场景,以及空洞卷积的介绍。Deeplab是Google研发的一系列深度学习模型,主要用于图像语义分割任务,其在众多应用场景中展现出…

56、FreeRTOS/GPIO与定时器相关学习20240329

一、代码实现控制开发板上的指示灯闪烁。 /* USER CODE BEGIN 0 */ //利用定时器机制 定时器溢出时对应的回调函数实现如下 //本次实现控制PB0,PB1两个灯 int flag1 0,flag2 0;//使用一个标记执行以下代码 会造成一个灯常亮 另一个常灭 void HAL_TIM_PeriodElaps…

JavaSE day15 笔记

第十五天课堂笔记 数组 可变长参数★★★ 方法 : 返回值类型 方法名(参数类型 参数名 , 参数类型 … 可变长参数名){}方法体 : 变长参数 相当于一个数组一个数组最多只能有一个可变长参数, 并放到列表的最后parameter : 方法参数 数组相关算法★★ 冒泡排序 由小到大: 从前…

【threejs】较大物体或shape的贴图较小问题处理方法

问题 有的场景内相对体型差距过大的物体(如山地 海洋等)由于尺寸问题,加载贴图过于小,同时shader也无法完全展示,如图 我们可以获取物体的uv,进行缩放使得贴图可以完全展开 如果uv是乱的 可以用xyz坐标最…

模组软件通用|GNSS坐标系的转换

“GNSS定位不准确,漂移了好几公里,是怎么回事呢?”很多用户在初次使用GNSS定位时都会有这样的问题,这主要是由于GNSS坐标系转换错误造成的位置偏移问题。下面将从常见坐标系、国内地图软件采用的坐标系、经纬度表示方法、示例以及…

Qt 完成图片的缩放拖动

1. 事件和函数 主要使用事件paintEvent(QPaintEvent *event)和drawTiledPixmap函数实现绘图。 paintEvent事件在改变窗口大小、移动窗口、手动调用update等情形下会被调用。需先了解下绘图该函数的用法。 - QPainter::drawTiledPixmap(int x, int y, int w, int h, const QPi…

深入并广泛了解Redis常见的缓存使用问题

Redis 作为一门主流技术,缓存应用场景非常多,很多大中小厂的项目中都会使用redis作为缓存层使用。 但是Redis作为缓存,也会面临各种使用问题,比如数据一致性,缓存穿透,缓存击穿,缓存雪崩&#…

k8s下搭建redis集群

记录一下近期实现的在k8s上搭建redis集群的过程 1、新建存储类 主要是为了和其它服务的存储类区分一下 redis-beta-storage 2、编写configMap redis启动时从configMap中读取配置 bind:默认的127.0.0.1可能会导致其它ip地址无法远程访问,因此修改为0.0…

stm32定时器中断函数回调函数

方式一:stm32定时器中断可以直接在硬件中断函数TIM3_IRQHandler执行。 在HAL库中可以注册回调函数,在定时器中断发生时调用注册的函数,这样可以统一接口,大大提高函数可读性,和硬件解耦提高程序可移植性。 使用过程如…

用Unity制作正六边形拼成的地面

目录 效果演示 1.在Unity中创建正六边形 2.创建一个用于管理正六边形的类 3.创建一个用于管理正六边形地面的类 4.创建一个空对象并将游戏控制脚本挂上 5.设置正六边形碰撞所需组件 6.创建正六边形行为触发脚本并挂上 7.创建圆柱体——田伯光 8.创建圆柱体移动脚本 运…

搜索与图论——bellman—ford算法、spfa算法求最短路

bellman-ford算法 时间复杂度O(nm) 在一般情况下&#xff0c;spfa算法都优于bf算法&#xff0c;但遇到最短路的边数有限制的题时&#xff0c;只能用bf算法 bf算法和dijkstra很像 #include<iostream> #include<queue> #include<cstring> #include<algori…

华清远见STM32U5开发板助力2024嵌入式大赛ST赛道智能可穿戴设备及IOT选题项目开发

第七届&#xff08;2024&#xff09;全国大学生嵌入式芯片与系统设计竞赛&#xff08;以下简称“大赛”&#xff09;已经拉开帷幕&#xff0c;大赛的报名热潮正席卷而来&#xff0c;高校电子电气类相关专业&#xff08;电子、信息、计算机、自动化、电气、仪科等&#xff09;全…

用navicat进行mysql表结构同步

用navicat进行mysql表结构同步 前言新增一个列然后进行表结构同步删除一个列然后进行表结构同步把Int列转成TinyInt列&#xff0c;看数字溢出的情况下能不能表结构同步总结 前言 从同事那边了解到还能用navicat进行表结构同步&#xff0c;他会在发布更新的时候&#xff0c;直接…

Reasoning on Graphs: Faithful and Interpretable Large Language Model Reasonin

摘要 大型语言模型(llm)在复杂任务中表现出令人印象深刻的推理能力。然而&#xff0c;他们在推理过程中缺乏最新的知识和经验幻觉&#xff0c;这可能导致不正确的推理过程&#xff0c;降低他们的表现和可信度。知识图谱(Knowledge graphs, KGs)以结构化的形式捕获了大量的事实…

在哪买国外服务器便宜?

在哪买国外服务器便宜&#xff1f;在寻找便宜且可靠的国外服务器商家时&#xff0c;我们需要考虑多个因素&#xff0c;包括价格、性能、可靠性、技术支持和扩展性等。下面是一些备受推崇的便宜国外服务器商家。 Amazon Web Services (AWS)。作为全球最大的云服务提供商之一&am…

WebSocket 详解-小案例展示

简介&#xff1a;Websocket是一种用于H5浏览器的实时通讯协议&#xff0c;可以做到数据的实时推送&#xff0c;可适用于广泛的工作环境&#xff0c;例如客服系统、物联网数据传输系统&#xff0c;该测试工具可用于websocket开发初期的测试工作。 文章末尾有此案例的完整源代码。…