python基础 | 模块与异常

1、模块

Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句

模块让你能够有逻辑地组织你的 Python 代码段,不可能把代码写在一起
把相关的代码分配到一个模块里能让你的代码更好用,更易懂。把代码揉到一起不便于 复用

模块能定义函数,类和变量,模块里也能包含可执行的代码

my_module.py

import sysdef get_path():print('The PYTHONPATH is', sys.path, '\n')class Demo:a = 88def func(self):print("I am a member: ", self.a)

test.py

import my_module as a # 换了个名字
from my_module import Demo # 只引入了一个类,只引入了一部分,import * 引入全部a.get_path()
d = Demo()
d.func()

输出结果

The PYTHONPATH is ['D:\\BaiduNetdiskDownload\\学员资料-20230710\\学员资料\\Python\\python基础\\13-模块', 'D:\\BaiduNetdiskDownload\\学员资料-20230710\\学员资料\\Python\\python基础\\13-模块', 'D:\\miniconda\\python311.zip', 'D:\\miniconda\\DLLs', 'D:\\miniconda\\Lib', 'D:\\miniconda', 'D:\\miniconda\\Lib\\site-packages', 'D:\\miniconda\\Lib\\site-packages\\win32', 'D:\\miniconda\\Lib\\site-packages\\win32\\lib', 'D:\\miniconda\\Lib\\site-packages\\Pythonwin'] I am a member:  88

2、异常

except 从句 可以专门处理 单⼀的错误或异常。如果没有给出错误或异常的名称,它会处理所有的错误和异常

对于每个 try 从句,至少都有⼀个相关联的 except 从句异常 就是用来处理错误的,对于抛出的异常:解决或结束程序

2.1 数值错误异常

while True:try:n = input("请输入一个整数: ")n = int(n)breakexcept ValueError as e:print("无效数字,异常内容为:", e) # e就是异常的类型,异常结束之后再进入while
print("\n\n")

输入a,输出
在这里插入图片描述
输入1,结束程序

2.2 IO异常

import systry:f = open('test.txt')
except IOError as e:print("I/O error", e)

没有对应文件test.txt,输出结果
在这里插入图片描述

2.3 自定义异常

class MyException(Exception): # 需要继承标准的异常类的实现,C++/python异常都是以类来实现的def __init__(self, length, atleast):Exception.__init__(self)self.length = lengthself.atleast = atleast

很多时候,我们可预知某种错误的时候,希望在调用方 来处理异常,可以使用 已有异常类型
或者 ⾃定义异常,通过 raise 抛出去

try:s = input('Enter something --> ')if len(s) < 10:raise MyException(len(s), 10)
except MyException as x: # 捕获MyException异常print('MyException: The input was of length %d, \but we expect length at least %d' % (x.length, x.atleast))
else:print('No exception was raised.')

输入1234 / qweiutieuiut
输出
在这里插入图片描述
在这里插入图片描述

3、finally关键字

如果我们不管是否有异常,都执⾏某段代码,可以使用finally关键字

def test():try:print('to do stuff')raise Exception('hehe') # 抛出异常程序就终止了except Exception:print('process except')print('to return in except')return 'except'finally: # 即使有异常,把没有做的工作做完,不管有没有异常都会执行print('to return in finally')return 'finally'res = test()
print('test finally function returns : ' + res)

运行结果
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Spring学习笔记(五)--Spring的AOP模块

一、AOP的底层原理 AOP的底层原理是动态代理&#xff0c;动态代理有两种方式&#xff1a;JDK动态代理和CGLib动态代理&#xff0c;在有接口的实现类时我们通常用JDK的动态代理方式&#xff08;默认情况&#xff09;为类创建代理对象&#xff0c;JDK的动态代理方式可以实现无入…

vue如何动态加载显示本地图片资源

在实际开发中&#xff0c;根据某一个变量动态展示图片的情况有很多。实现方法分打包构建工具的差异而不同。 1、webpack的项目 require引入图片资源 2、vite的项目 new URL(url,base).href 疑问解答&#xff1a;为什么vite项目不可以用require&#xff1f; 原因在于&#xf…

OpenAI Sora引领AI跳舞视频新浪潮:字节跳动发布创新舞蹈视频生成框架

OpenAI的Sora已经引起广泛关注&#xff0c;预计今年AI跳舞视频将在抖音平台上大放异彩。下面将为您详细介绍一款字节跳动发布的AI视频动画框架。 技术定位&#xff1a;这款框架采用先进的diffusion技术&#xff0c;专注于生成人类舞蹈视频。它不仅能够实现人体动作和表情的迁移…

高校学科竞赛平台|基于springboot高校学科竞赛平台设计与实现(源码+数据库+文档)

高校学科竞赛平台目录 目录 基于springboot高校学科竞赛平台设计与实现 一、前言 二、系统功能设计 三、系统实现 1、竞赛题库管理 2、竞赛信息管理 3、晋级名单管理 4、往年成绩管理 5、参赛申请管理 四、数据库设计 1、实体ER图 五、核心代码 六、论文参考 七、最…

STM32F10X(Cortex-M3)系统定时器寄存器笔记和系统定时器精准延时函数

Cortex-M3系统定时器寄存器笔记和系统定时器精准延时函数 简介系统定时器寄存器STK_CTRLSTK_LOADSTK_VALSTK_CALIB STM32F10X(Cortex-M3)精准延时函数 简介 在STM32F10X(Cortex-M3)除了通用定时器和看门狗定时器外&#xff0c;还有一个系统定时器(SysTick) 拿STM32F103C8T6来说…

开年炸裂-Sora/Gemini

最新人工智能消息 谷歌的新 Gemini 模型 支持多达 1M的Token&#xff0c;可以分析长达一小时的视频 1M Token可能意味着分析700,000 个单词、 30,000 行代码或11 小时的音频、总结、改写和引用内容。 Comment&#xff1a;google公司有夸大的传统&#xff0c;所以真实效果需要上…

开源 - 一款可自定义的在线免杀平台|过x60、wd等

免责声明&#xff1a;本工具仅供安全研究和教学目的使用&#xff0c;用户须自行承担因使用该工具而引起的一切法律及相关责任。作者概不对任何法律责任承担责任&#xff0c;且保留随时中止、修改或终止本工具的权利。使用者应当遵循当地法律法规&#xff0c;并理解并同意本声明…

Docker硬件直通:如何在容器中高效利用GPU与硬盘资源

Docker硬件直通&#xff1a;如何在容器中高效利用GPU与硬盘资源 引言Docker基础容器与虚拟机的区别Docker的工作原理 访问服务器硬件资源概述为何需要在Docker容器中访问硬件资源可访问的硬件资源类型 在Docker中使用GPU配置Docker以使用宿主机的GPU资源安装NVIDIA Docker插件 …

【算法与数据结构】1020、130、LeetCode飞地的数量 被围绕的区域

文章目录 一、1020、飞地的数量二、130、被围绕的区域三、完整代码 所有的LeetCode题解索引&#xff0c;可以看这篇文章——【算法和数据结构】LeetCode题解。 一、1020、飞地的数量 思路分析&#xff1a;博主认为题目很抽象&#xff0c;非常难理解。想了好久&#xff0c;要理解…

【C++】STL容器之string(一)

&#x1f490; &#x1f338; &#x1f337; &#x1f340; &#x1f339; &#x1f33b; &#x1f33a; &#x1f341; &#x1f343; &#x1f342; &#x1f33f; &#x1f344;&#x1f35d; &#x1f35b; &#x1f364; &#x1f4c3;个人主页 &#xff1a;阿然成长日记 …

C语言----字符数组指针

1.char arr[] {a,b,c,d,e,f}; sizeof分析类型就可以计算所占的内存空间的大小&#xff1b; &#xff08;1&#xff09;printf("%d\n", sizeof(arr)); 数组名单独放进里面&#xff0c;计算整个数组大小&#xff0c;所以是6字节&#xff1b; &#xff08;2&#xff…

计算以10为底的对数 math.log10(x)

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 计算以10为底的对数 math.log10(x) [太阳]选择题 以下代码的输出结果中正确的是? import math print("【执行】math.log10(10)") print(math.log10(10)) print("【执行】math…

尚未创建默认 SSL 站点。若要支持不带 SNI 功能的浏览器,建议创建一个默认 SSL 站点。

在 Windows Server 2012 IIS 站点中设置 SSL 证书后&#xff0c;IIS 右上角提示&#xff1a; 尚未创建默认 SSL 站点。若要支持不带 SNI 功能的浏览器&#xff0c;建议创建一个默认 SSL 站点。 该提示客户忽略不管&#xff0c;但是若要支持不带 SNI(Server Name Indication)…

Retrofit2原理分析

Retrofit官网 GitHub上的Retrofit 使用Retrofit进行网络请求的主要步骤 创建一个接口 用于描述HTTP请求。接口里的方法使用注解来标记请求方式、API路径、请求参数等信息。使用Retrofit.Builder().build();配置和创建一个Retrofit实例&#xff1b;调用retrofit.create()方法获…

零到大师:嵌入式Linux学习书单分享

大家好&#xff0c;我是知微&#xff01; 上一篇推荐的书单嵌入式软件必读10本书_单片机篇&#xff0c;收到反响很好。再推荐一篇嵌入式Linux相关的书单。 《鸟哥的Linux私房菜》 鸟哥的Linux系列适合零基础小伙伴&#xff0c;从电脑基础到文件系统、shell脚本等等&#xff…

C++之Easyx——图形库的基本功能(1):界面操作

最近&#xff0c;我觉得使用控制台编写游戏太没意思了&#xff01;&#xff01; 所以我开始研究图形库了~ 一、setinitmode 函数定义 void EGEAPI setinitmode(int mode, int x CW_USEDEFAULT, int y CW_USEDEFAULT); //设置初始化模式&#xff0c;mode0为普通&#xff0c…

Linux篇:开发工具yum/vim/gcc/g++/Makefile/gdb

一. yum&#xff1a;软件包管理器 什么是软件包&#xff1f; 在Linux 下安装软件 , 一个通常的办法是下载到程序的源代码 , 并进行编译 , 得到可执行程序 . 但是这样太麻烦了, 于是有些人把一些常用的软件提前编译好 , 做成软件包 (可以理解成windows 上的安装程序) 放在…

遥遥领先的大语言模型GPT-4的图像合成能力如何?

遥遥领先的多模态大语言模型GPT-4的图像合成能力如何&#xff1f;今天分享一个建立了一个用于评估GPT-4生成图像中纹理特征保真度的基准&#xff0c;其中包括手工绘制的图片及其AI生成的对应物。本研究的贡献有三个方面&#xff1a;首先&#xff0c;对基于GPT-4的图像合成特征的…

C++ 之LeetCode刷题记录(三十三)

&#x1f604;&#x1f60a;&#x1f606;&#x1f603;&#x1f604;&#x1f60a;&#x1f606;&#x1f603; 开始cpp刷题之旅。 目标&#xff1a;执行用时击败90%以上使用 C 的用户。 11. 盛最多水的容器 给定一个长度为 n 的整数数组 height 。有 n 条垂线&#xff0c;…

存内计算的主流技术方案

1 概述 和近数据计算不同&#xff0c;存内计算直接使用内存单元做计算&#xff0c;主要利用电阻和电流电压的物理关系表达运算过程。存内计算依赖于新型的非易失性存储器&#xff0c;如 ReRAM和 PCM 等。在所有存内计算操作中&#xff0c;最普遍的是利用基尔霍夫定律&#xff0…