当前位置: 首页 > news >正文

深圳做琴行的公司网站/网站推广经验

深圳做琴行的公司网站,网站推广经验,wordpress4.2.2下载,福田蒙派克油耗一、了解异常 异常的概念 什么是异常 当检测到一个错误时,Python解释器就无法继续执行了,反而出现了一些错误的提示,这就是所谓的“异常”,也就是我们常说的BUG。 二、异常的捕获 1.知道为什么要捕获异常 世界上没有完美的程…
一、了解异常

异常的概念

什么是异常

当检测到一个错误时,Python解释器就无法继续执行了,反而出现了一些错误的提示,这就是所谓的“异常”,也就是我们常说的BUG

二、异常的捕获
1.知道为什么要捕获异常

世界上没有完美的程序,任何程序在运行的过程中,都有可能出现:异常,也就是bug导致程序无法完美的运行下去。

我们要做的,不是力求程序完美运行。

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

这种行为我盟称之为:异常处理(捕获异常)

当我们的程序遇到了BUG,那么接下来有两种情况

1.整个程序因为一个BUG停止运行

2.对BUG进行提醒,整个程序继续运行

显然在之前的学习中,我们所有的程序遇到BUG就会出现1的这种情况,也就是整个程序直接奔溃

但是在真实工作中,我们肯定不能因为一个小的BUG就让整个程序全部崩溃,也就是我们希望达到的是2的这种情况,那这里我们就需要使用到捕获异常

捕获异常的作用在于:提前假设摸处会出现异常,做好提前准备,当真的出现异常的时候,可以有后续手段

2.掌握异常的语法格式

基本语法:

try:可能发生错误的代码
except:如果出现异常执行的代码

快速入门

需求:尝试以‘r’模式打开文件,如果文件不存在,则以‘w’方式打开

try:f = open('linux.txt','r')
except:f = open('linux.txt','w')

捕获指定异常

基本语法:

try:print(name)
except NameError as e:print('name变量名称未定义错误')

 1.如果尝试执行的代码的异常类型和要捕获的异常类型不一致,则无法捕获异常

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

捕获多个异常

当捕获多个异常是,可以要捕获的异常类型的名字,放到except后,并使用元组的方式进行书写

try:print(1/0)
except(NameError,ZeroDivisionError):print('ZeroDivision错误。。。。')

 执行结果:

 异常else

else表示的是如果没有异常要执行的代码

try:print(1)
except Exception as a:print(e)
elseprint('我是else,是没有异常的时候执行的代码')

 finally表示的是无论是否异常都要执行的代码,例如关闭文件

try:f = open('test.txt','r')
except Exception as e:f = open('test.txt','w')
else:print("没有异常,真开心")
finally:f.close()

 总结演示

"""演示异常捕获
"""
# 基本捕获语法
try:f = open("D:/abc.txt","r",encoding="UTF-8")
except:print("出现异常了,因为文件不存在,我将open的模式,改为w模式打开")f = open("D:/abc.txt","w",encoding="UTF-8")# 捕获指定的异常
try:print(name)# 1 / 0
except NameError as e:print("出现了变量未定义的异常")print(e)# 捕获多个异常
try:1 / 0print(name)
except (NameError,ZeroDivisionError) as e:print("出现了变量未定义 或者 除以0的异常错误")# 未正确设置捕获异常类型,将无法捕获异常#  捕获所有异常
try:f = open("D:/123.txt","r")
except Exception as e:print("出现异常了")f = open("D:/123.txt","w",encoding="UTF-8")
else:print("好高兴,没有异常")
finally:print("我是finally,有没有异常我都要执行")f.close()
三、异常的传递

异常是具有传递性的

函数func01中发生异常,并且没有捕获处理这个异常的时候,异常会传递到函数func02,当func也没有捕获处理这个异常的时候main函数会捕获这个异常,这就是异常的传递性

提示:

当所有函数都没有捕获异常的时候,程序就会报错

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

 

四、Python模块
1.模块的导入

了解什么是模块

python模块(Module),是一个Python文件,以.py结尾。模块能定义函数,类和变量,模块里也能包含可执行的代码。

模块的作用:python中有很多各种不同的模块,每一个模块都可以帮助我们快速实现一些功能,比如实现和时间相关的功能就可以使用time模块,我们可以认为一个模块就是一个工具包,每一个工具包中都有各种不同的工具供我们使用进而实现各种不同的功能

大白话:模块就是一个Python文件,里面有类、函数、变量等,我可以拿过来用(导入模块去使用)

掌握导入Python内置的模块

模块在使用前需要先导入 导入的语法如下

"""演示Pyhton的模块导入
"""
# 使用import导入time模块使用sleep功能(函数)
import time  # 导入Python内置的time模块(time.py这个代码文件)
print("你好")
time.sleep(5)  # 通过。就可以使用模块内部的全部功能(类、函数、变量)
print("我好")# 使用from导入time的sleep功能(函数)
from time import sleep # *表示全部的意思
print("你好")
sleep(5)
print("我好")#  使用 * 导入time模块的全部功能
from time import *
print("你好")
sleep(5)
print("我好")
# 使用as给特定功能加上别名
import time as t
print("你好")
t.sleep(5)
print("我好")from time import sleep as sl

 

2.自定义模块

制作自定义模块

Python中已经帮我们实现了很多的模块,不过有时候我们需要一些个性化的模块,这里就可以通过自定义模块实现,也就是自己制作一个模块

案例:新建一个Python文件,命名为my_modulel.py,并定义test函数

注意:

每个Python文件都可以作为一个模块,自定义模块的名字必须符合规范

_all_

如果一个模块文件中有_all_变量,当使用from xxx import * 导入时,只能导入这个列表中的元素

"""演示自定义模块
"""
# 导入自定义模块使用
import my_module1
from my_module1 import test
test(1,2)
my_module1.test(1, 2)# 导入不同模块的同名功能
from  my_module1 import test
from  my_module2 import test
test(1,2)# __main__变量
from  my_module1 import test# __all__变量
from  my_module1 import *
__all__ = ["test_2"]def test_2(a,b):print(a - b)def test_1(a, b):print(a - b)
五、Python包
1.自定义包

什么是python包

从物理上看,包就是一个文件夹,在该文件夹下包含了一个_init_.py文件,该文件夹可用于包含多个模块文件,从逻辑上看,包的本质依然是模块

包的作用

当我们的模块文件越来越多时,包可以帮助我们管理这些模块,包的作用就是包含 多个模块,但报的本质依然是模块

2.安装第三方包

 

相关文章:

Python笔记 异常、模块与包

一、了解异常 异常的概念 什么是异常 当检测到一个错误时,Python解释器就无法继续执行了,反而出现了一些错误的提示,这就是所谓的“异常”,也就是我们常说的BUG。 二、异常的捕获 1.知道为什么要捕获异常 世界上没有完美的程…...

spark查看日志

Logger 当 Spark 任务已经提交到集群运行后&#xff0c;可以通过以下几种方式查看LoggerFactory输出的日志&#xff1a; Web 界面&#xff1a;在 Spark 任务运行时&#xff0c;可以通过访问 Spark 的 Web UI 来查看日志。通常&#xff0c;可以在浏览器中输入http://<drive…...

【LeetCode】每日一题:LRU缓存

请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCache 类&#xff1a; LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存 int get(int key) 如果关键字 key 存在于缓存中&#xff0c;则返回关键字的值&#xff0c;否则返回 -1 …...

记录一个Xshell使用中Xmanager...X11转发的提示问题

希望文章能给到你启发和灵感&#xff5e; 如果觉得有帮助的话&#xff0c;点赞关注收藏支持一下博主哦&#xff5e; 阅读指南 一、环境说明1.1 硬件环境1.2 软件环境 二、问题和错误三、解决四、理解和延伸一下 一、环境说明 考虑环境因素&#xff0c;大家适当的对比自己的软硬…...

Mamba 模型

建议观看讲解视频&#xff1a;AI大讲堂&#xff1a;革了Transformer的小命&#xff1f;专业拆解【Mamba模型】_哔哩哔哩_bilibili 1. 论文基本信息 2. 创新点 选择性 SSM&#xff0c;和扩展 Mamba 架构&#xff0c;是具有关键属性的完全循环模型&#xff0c;这使得它们适合作…...

30-33、SpringBoot项目部署\属性配置方式\多环境开发(一个文件)\多环境分组(多个文件)

1、打包插件:和springboot的版本保持一致 根pom <build><plugins><!--打包插件--><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>3.1.3</versi…...

【PyQt5】一文向您详细介绍 setContentsMargins() 的作用

【PyQt5】一文向您详细介绍 setContentsMargins() 的作用 下滑即可查看博客内容 &#x1f308; 欢迎莅临我的个人主页 &#x1f448;这里是我静心耕耘深度学习领域、真诚分享知识与智慧的小天地&#xff01;&#x1f387; &#x1f393; 博主简介&#xff1a;985高校的普通…...

分页查询前端对接

文章目录 添加角色修改角色当点击修改按钮后,那么就会弹出对话框,所以要设置显示为true点击修改的时候就是 要显示对话框 制作用户管理页面开发后端接口用户查询前端整合新增接口功能实现修改 添加角色 首先添加 添加表单的组件 那么总结一下 就是使用 组件 然后再使用变量接…...

从一万英尺外看libevent(源码刨析)

从一万英尺外看libevent 温馨提示&#xff1a;阅读时间大概二十分钟 前言 Libevent是用于编写高速可移植非阻塞IO应用的库&#xff0c;其设计目标是&#xff1a; 可移植性&#xff1a;使用libevent编写的程序应该可以在libevent支持的所有平台上工作。即使没有好的方式进行非…...

Linux部署SVN

一.下载与安装 &#xff08;1&#xff09;yum安装 yum install subversion &#xff08;2&#xff09;源文件编译安装 ①下载svn源文件 subversion-xxx.tar.gz&#xff08;subversion 源文件&#xff09; subversion-deps-xxx.tar.gz&#xff08;subversion依赖文件&…...

Linux高并发服务器开发(二)系统调用函数

文章目录 1 系统调用2 errno3 虚拟内存空间4 文件描述符5 常用文件IO函数6 阻塞和非阻塞7 lseek 偏移函数8 文件操作函数之stat函数9 文件描述符复制 dup10 fcnlt函数 修改文件属性11 目录相关操作12 时间相关函数 1 系统调用 根据系统调用&#xff0c;获取驱动信息、CPU的信息…...

rk3568 Android 11在系统怎样执行命令获取SN号

目录 1. 使用ADB&#xff08;Android Debug Bridge&#xff09;2. 使用Shell脚本或应用程序3. 使用系统API4. 直接在设备上使用Shell5. getprop使用方法常见属性示例注意事项 在瑞芯微RK3568 Android 11系统中执行命令或获取SN号&#xff08;序列号&#xff09;通常可以通过几种…...

PostgreSQL 性能优化与调优(六)

1. 索引优化 1.1 创建索引 索引可以显著提高查询性能。创建索引的基本语法如下&#xff1a; CREATE INDEX index_name ON table_name (column_name);例如&#xff0c;为 users 表的 username 列创建索引&#xff1a; CREATE INDEX idx_username ON users (username); 1.2 …...

win10 安装openssl并使用openssl创建自签名证书

win10创建自签名证书 下载安装配置openssl 下载地址&#xff1a; https://slproweb.com/download/Win64OpenSSL-3_3_1.exe https://slproweb.com/products/Win32OpenSSL.html 完成后安装&#xff0c;一路next&#xff0c;到达选位置的之后选择安装的位置&#xff0c;我这里选…...

【OpenCV 图像处理 Python版】图像处理的基本操作

文章目录 1.图像的 IO 操作1.1 图像读取 imread1.2 图像显示1.2.1 opencv 方式1.2.2 matplotlib 方式 1.3 图像保存 imwrite 2.绘制几何图形1. 绘制直线2. 绘制矩形3. 绘制圆形4. 绘制多边形5. 添加文字 3.获取并修改图像中的像素点3.1 获取像素值3.2 修改像素值3.3 获取和修改…...

HarmonyOS应用开发学习经验

一、HarmonyOS学习官网 开发者能力认证 HarmonyOS应用开发者基础认证6月之前的学习资源官网已经关闭过期&#xff0c;大家不要慌&#xff0c;官方更新了最新资源&#xff0c;但是&#xff0c;对于之前没有学习完的学员不友好&#xff0c;存在知识断片的现象&#xff0c;建议官…...

LLM大语言模型应用方案之RAG检索增强生成的实现步骤。

0.我理解的RAG 什么是RAG&#xff1f; RAG的全称是“检索增强生成模型”&#xff08;Retrieval-Augmented Generation&#xff09;。这是一种特别聪明的大语言模型。 RAG是怎么工作的呢&#xff1f; 1.检索&#xff1a;当你问RAG一个问题时&#xff0c;它会先去“图书…...

【python学习】学习python的小项目

学习Python时&#xff0c;通过完成一些小项目可以帮助你巩固知识并提升实践能力。以下是一些适合学习Python的小项目建议&#xff1a; 命令行计算器&#xff1a; 创建一个简单的命令行计算器&#xff0c;可以执行基本的算术运算&#xff08;加、减、乘、除&#xff09;。使用i…...

java-冒泡排序 1

## Java中的冒泡排序 ### 1. 冒泡排序的基本概念 冒泡排序&#xff08;Bubble Sort&#xff09;是一种简单且直观的排序算法。它通过重复地遍历待排序的列表&#xff0c;比较相邻的元素并交换它们的位置&#xff0c;使较大的元素逐步从列表的一端移动到另一端&#xff0c;就像…...

【STM32】USART串口通讯

1.USART简介 STM32芯片具有多个USART外设用于串口通讯&#xff0c;它是 Universal Synchronous Asynchronous Receiver and Transmitter的缩写&#xff0c; 即通用同步异步收发器可以灵活地与外部设备进行全双工数据交换。有别于USART&#xff0c; 它还有具有UART外设(Univers…...

Qt6中如何将QList转为QSet?

QSet是一个具有唯一值的哈希集合。比较少用。比较有用的是QSet里面的intersect查找两个集合中不同元素&#xff0c;并合并。 转换过程比较简单&#xff0c;第一种是直接用迭代器。 QSet<int> set(list.begin(), list.end()); 第二种就是逐一遍历赋值&#xff1a; QLi…...

aspectj:AOP编程备忘录-切面定义的注意事项

AOP编程时定义切面时需要注意的事 Around 以Around注解拦截构造方法(Constructor)时切面定义只能用call方式而不能是execution&#xff0c;否则 ProceedingJoinPoint.proceed()返回的是null&#xff0c;得不到构造的实例。 execution execution切入点要修改对象内部&#x…...

大数据面试题之Hive(1)

目录 说下为什么要使用Hive?Hive的优缺点?Hive的作用是什么? 说下Hive是什么?跟数据仓库区别? Hive架构 Hive内部表和外部表的区别? 为什么内部表的删除&#xff0c;就会将数据全部删除&#xff0c;而外部表只删除表结构?为什么用外部表更好? Hive建表语句?创建表…...

【Git】分布式版本控制工具

一、简介 二、目标 Git分布式版本控制工具 一、简介 Git是一种分布式版本控制系统&#xff0c;用于跟踪和管理源代码的变化。它由林纳斯托瓦兹&#xff08;Linus Torvalds&#xff09;于2005年开发&#xff0c;并迅速成为最流行的版本控制工具之一。以下是关于Git的一些关键…...

排序之插入排序----直接插入排序和希尔排序(1)

个人主页&#xff1a;C忠实粉丝 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 C忠实粉丝 原创 排序之插入排序----直接插入排序和希尔排序(1) 收录于专栏【数据结构初阶】 本专栏旨在分享学习数据结构学习的一点学习笔记&#xff0c;欢迎大家在评论区交流讨…...

快速创建条形热力图

Excel中的条件格式可以有效的凸显数据特征&#xff0c;如下图中B列所示。 现在需要使用图表展现热力条形图&#xff0c;如下图所示。由于颜色有多个过渡色&#xff0c;因此手工逐个设置数据条的颜色&#xff0c;基本上是不可能完成的任务&#xff0c;使用VBA代码可以快速创建这…...

go switch 与 interface

go switch 与 interface 前言 前言 github.com/google/cel-go/common/types/ref type Val interface {// ConvertToNative converts the Value to a native Go struct according to the// reflected type description, or error if the conversion is not feasible.ConvertTo…...

BaseMapper 接口介绍

基于 mybatis-mapper/provider 核心部分实现的基础的增删改查操作&#xff0c;提供了一个核心的 io.mybatis.mapper.BaseMapper 接口和一个 预定义 的 io.mybatis.mapper.Mapper 接口&#xff0c;BaseMapper 接口定义如下&#xff1a; /*** 基础 Mapper 方法&#xff0c;可以在…...

HAL-Cubemax定时器使用记录

title: HAL-Cubemax定时器使用记录 tags: STM32HalCubemax 文章目录 HAL-Cubemax定时器使用记录分享一种思路1.创建一个ms(毫秒)级延时中断2.创建计数的变量3.在需要延时的函数中对变量阈值进行判断4.验证实例--完整使用记录代码 问题往期内容基础库HAL cubemax VSCODE GCC …...

同时使用磁吸充电器和Lightning时,iPhone充电速度会变快吗?

在智能手机的世界里&#xff0c;续航能力一直是用户关注的焦点。苹果公司以其创新的MagSafe技术和传统的Lightning接口&#xff0c;为iPhone用户提供了多样化的充电解决方案。 然而&#xff0c;当这两种技术同时使用时&#xff0c;它们能否带来更快的充电速度&#xff1f;本文…...