Python基础第八篇(Python异常处理,模块与包)

文章目录

  • 一、了解异常
  • 二、捕获异常
    • (1).异常案例代码
    • (2).读出结果
  • 三、异常的传递
    • (1).异常传递案例代码
    • (2).读出结果
  • 四、Python模块
    • (1).模块的导入
      • (1).异常传递案例代码
      • (2).读出结果
    • (2).自定义模块
      • (1).异常传递案例代码
      • (2).读出结果
  • 五、Python包
    • (1).自定义包
    • (2).安装第三方包
      • (1).方法一
      • (2).方法二
  • 六、Python异常处理,模块与包综合案例

在这篇博文中,我们将深入研究Python中异常处理、模块和包的使用。文章结构清晰,内容丰富,并详细地分析了Python的异常处理机制,充分解释了如何捕获和传递异常,以及提供了直观易懂的代码示例。然后,我们将介绍Python模块的概念和使用,无论是内置模块还是自定义模块,以及详细演示了如何导入和利用模块。紧接着,文章会带领读者一起学习如何自定义包和安装第三方包,最后,文章通过一组合并使用Python异常处理、模块和包的案例,使读者能够更好地理解和掌握这些知识。这是一篇适合初级到中级Python开发者阅读的文章,无论您是新手还是有经验的开发者,都能从中受益。

一、了解异常

在这里插入图片描述

二、捕获异常

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(1).异常案例代码

代码如下(示例):

#捕获所有异常
try:
    f = open("E:/testss.txt", "r", encoding="utf-8")
except Exception as e:
    print("出现异常了")
# else:非异常
try:
    f = open("E:/testss.txt", "r", encoding="utf-8")
except Exception as e:
    print("出现异常了")
else:
    print("没有异常")
# finally:异常的finally
try:
    f = open("E:/testss.txt", "r", encoding="utf-8")
except Exception as e:
    print("出现异常了")
else:
    print("没有异常")
finally:
    f.close()

(2).读出结果

代码如下(示例):

出现了变量未定义的异常
出现了变量未定义 或者 除以0的异常错误
出现异常了
出现异常了
出现异常了

三、异常的传递

在这里插入图片描述

(1).异常传递案例代码

代码如下(示例):

# 定义一个出现异常的方法
def func1():
    print("func1开始执行")
    num = 1/0 #除以0肯定异常
    print("func1 结束执行")
# 定义一个无异常的方法,调用以上的方法
def func2():
    print("func2开始执行")
    func1()
    print("func2 结束执行")
# 定义一个方法,说明以上的方法
def main():
    try:
        func2()
    except Exception as e:
        print(f"出现了异常,异常的信息是:{e}")
main()

(2).读出结果

代码如下(示例):

func2开始执行
func1开始执行
出现了异常,异常的信息是:division by zero

四、Python模块

在这里插入图片描述

(1).模块的导入

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(1).异常传递案例代码

代码如下(示例):

# 演示Python的模块导入
"""

"""
# 使用import导入time的sleep功能(函数)
import time  #导入Python内置的time模块(time.py这个代码文件)
print("Hello Woid")
time.sleep(5)  #暂停5print("Goodbye")

# 使用from导入time的sleep功能(函数)
from time import sleep
print("你好")
time.sleep(5)  #暂停5print("我好")

# 使用 * 导入time的全部功能(函数)
from time import *  # * 表示全部的意思
print("你好")
time.sleep(5)  #暂停5print("我好")

# 使用 as 给特定的功能加上别名
import time as t
print("你好")
t.sleep(5)
print("我好")

from  time import sleep as sl
print("你好")
t.sl(5)
print("我好")


(2).读出结果

代码如下(示例):

Hello Woid
Goodbye
你好
我好
你好
我好
你好
我好
你好
我好

(2).自定义模块

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(1).异常传递案例代码

代码如下(示例):


# 演示Python的模块导入
"""

"""
# 导入自定义模块使用
from my_module1 import test

print(test(1, 2))

# 导入不同模块的同名功能
from my_module1 import test
from my_module2 import test
print(test(1, 2))

# ——main——安装
from my_module2 import test

# ——all——安装
from my_module2 import *
print(test(1, 2))

(2).读出结果

代码如下(示例):

3
-1
-1

五、Python包

在这里插入图片描述

(1).自定义包

在这里插入图片描述
在这里插入图片描述

(2).安装第三方包

在这里插入图片描述

(1).方法一

在这里插入图片描述
在这里插入图片描述
检验是否安装成功
在这里插入图片描述

(2).方法二

在这里插入图片描述

六、Python异常处理,模块与包综合案例

在这里插入图片描述
file_util.py >代码如下(示例):

def print_file_info(file_path):
    f = open(file_path, "r", encoding="utf-8")
    print(f"读取全部字节的结果是:{f.read()}")
def append_to_file(file_name,data):
    f = open(file_name, "a", encoding="utf-8")
    f.write(f"\n{data}")
if __name__ == '__main__':
    print_file_info("E:\测试.txt")
    append_to_file("E:\测试.txt","写于2024年1月22日")

str_util.py >代码如下(示例):

def str_reverse(s):
    return s[::-1]
def substr(s,x,y):
    return s[x:y:]
if __name__ == '__main__':
    print(str_reverse("河南科技学院"))
    print(substr("Python是最简洁的编程语言", 6, 15))

file_util.py.读出结果

读取全部字节的结果是:欢迎来到我们的Python学习专栏。在这里,我们将一起探索Python这门强大、灵活、易于学习的编程语言。
Python已经成为数据科学、人工智能、网页开发等各种计算领域的首选语言,而且在事实上,无论你是初学者还是有经验的开发者,你都能从中找到乐趣和价值。
........

写于2024122

str_util.py 读出结果

院学技科南河
是最简洁的编程语言

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

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

相关文章

【RainCloud】搭建网站!

一.领取一个免费域名和SSL证书,和CDN https://www.rainyun.com/z22_ 1.打开网站链接2.在网站主页上,您会看到一个"登陆/注册"的选项。 3.点击"登陆/注册",然后选择"微信登录"选项。 4.使用您的手机扫描二维…

项目实战——Qt实现FFmpeg音视频转码器

文章目录 前言一、移植 FFmpeg 相关文件二、绘制 ui 界面三、实现简单的转码四、功能优化1、控件布局及美化2、缩放界面3、实现拖拽4、解析文件5、开启独立线程6、开启定时器7、最终运行效果 五、附录六、资源自取 前言 本文记录使用 Qt 实现 FFmepg 音视频转码器项目的开发过…

nginx代理本机多个端口应用

说明: 需求:我当前只有一个端口的授权,比如80,但是我的服务有多个且在不同的端口,比如8081,8082,我希望所有的请求通过都通过80端口进来,然后根据不同的文根怼到不同的端口&#xff…

专业ScrumMaster(高级)- PSM II 认证班,Scrum.org认证PSM II官方认证班

课程简介 Scrum是目前运用最为广泛的敏捷开发方法,是一个轻量级的项目管理和产品研发管理框架,旨在最短时间内交付最大价值。根据2022年全球敏捷状态报告,Scrum的应用占比已经达到87%。 Scrum.org 由 Scrum 的联合创始人 Ken Schwaber 创立…

让代码在键盘上跳“华尔兹”的10大原则

大家好,我是小❤,一个漂泊江湖多年的 985 非科班程序员,曾混迹于国企、互联网大厂和创业公司的后台开发攻城狮。 引言 编程界都知道,代码是一种艺术 —— 它是对技术职责和美学眼光的完美融合。 正如一名工匠在雕琢他的作品&am…

qt+sqllite小区管理系统

💂 个人主页:pp不会算法^ v ^ 🤟 版权: 本文由【pp不会算法v】原创、在CSDN首发、需要转载请联系博主 💬 如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连)和订阅专栏哦 最近接了单子把小区管理系统改改分享出来吧,比较适合q…

python04-变量命名规则

python需要使用标识符来给变量命名。 标识符,我来解释下,就是给程序中变量、类、方法命名的符号,简单理解就是起一个名字,这个名字必须是合法的名字, 对于Python来说,标识符必须是以字母、下划线(_)开头&…

Oracle 19c rac集群管理 -------- 集群启停操作过程

Oracle rac集群启停操作过程 首先查看数据库的集群的db_unique_name SQL> show parameter nameNAME TYPE VALUE ------------------------------------ ----------- --------------------------- cdb_cluster_name …

vue2中CesiumV1.113.0加载离线地形数据

离线地形数据可以放在vue项目下的public/data/sjzTerrain文件下 由于地形离线数据数量太大,在vue项目编译时会报如下错误: ERROR in EMFILE: too many open files, open D:\test_project\vue_cesium_demo\public\data\sjzTerrain\.tmp\14\26787\11669.h…

《WebKit 技术内幕》学习之十二(1):安全机制

第12章 安全机制 安全机制对于浏览器和渲染引擎来说至关重要。一个不考虑安全机制的HTML5规范体系肯定不会受到广泛地使用,同时一个不安全的浏览器也不会得到广大用户的青睐。本章介绍的安全机制分成两个不同的部分,第一个部分是网页的安全,…

web 应用常见的安全问题

一xss攻击 人们经常将跨站脚本攻击(Cross Site Scripting)缩写为CSS,但这会与层叠样式表(Cascading Style Sheets,CSS)的缩写混淆。因此,有人将跨站脚本攻击缩写为XSS。 跨站脚本攻击&#xff…

ubuntu 20.04 使用 webrtc-streamer自动退出,报错GLIBC 问题解决方法

文章目录 前言Ubuntu 20.4中使用webrtc-streamer报错总结 前言 前端vue2 项目需要播放海康的视频流,本地启动起来了,现在需要的服务器上部署,服务器是Ubuntu 20.04,下面是部署时遇到的问题及解决方法,总耗时2天。 不知…

Linux之权限(内容详细,细节满满)

个人主页:点我进入主页 专栏分类:C语言初阶 C语言程序设计————KTV C语言小游戏 C语言进阶 C语言刷题 数据结构初阶 Linux 欢迎大家点赞,评论,收藏。 一起努力 目录 一.前言 二.权限修改的两种方法 …

3.【SpringBoot3】文章分类接口开发

序言 在文章分类模块,有以下接口需要开发: 新增文章分类文章分类列表获取文章分类详情更新文章分类删除文章分类 数据库表字段和实体类属性: 在数据库表中,create_user 来自于 user 表中的主键 id,是用来记录当前文…

使用AFPN渐近特征金字塔网络优化YOLOv8改进小目标检测效果(不适合新手)

目录 简单概述 算法概述 优化效果 参考文献 文献地址:paper 废话少说,上demo源码链接: 简单概述 AFPN的核心思想:AFPN主要通过引入渐近的特征融合策略,逐步整合底层、高层和顶层的特征到目标检测过程中。这种融合…

正信晟锦:亲戚借了钱怎么要回来

亲戚间的金钱借贷,往往是情感与金钱交织的微妙话题。在中国传统文化中,家族关系至关重要,因此处理此类事宜时需要格外细致和谨慎。要回借出的钱,不仅要考虑到资金的回流,更要维护和谐的家庭关系。 沟通是解决问题的关键…

v-for中使用v-model的坑点

问题场景: 有这样一种场景,比如我们需要根据数据创建多个input输入框 <template><div v-for"(item, index) in list" :key"index"><a-input v-model"item"></a-input></div></template><script>expo…

Git--创建仓库(1)

git init Git 使用 git init 命令来初始化一个 Git 仓库&#xff0c;Git 的很多命令都需要在 Git 的仓库中运行&#xff0c;所以 git init 是使用 Git 的第一个命令。 在执行完成 git init 命令后&#xff0c;Git 仓库会生成一个 .git 目录&#xff0c;该目录包含了资源的所有…

别再局限于Android和iOS了尝试鸿蒙APP系统开发吧!

最近&#xff0c;多家互联网公司也发布了鸿蒙OS的App开发工程师的岗位&#xff0c;开启了抢人大战&#xff0c;有的企业开出了近百万的年薪招聘鸿蒙OS工程师&#xff0c;而华为甚至为鸿蒙OS资深架构师开出了100万元—160万元的年薪。 「纯血」鸿蒙开启&#xff0c;欲与 Andori…