Python学习 day05(异常、模块导入、包)

news2024/11/18 13:49:30

异常

  • 为什么要捕获异常

    • 当程序遇到了BUG,如果不对BUG进行手动捕获,那么整个程序就会因为一个BUG而停止运行,这在有些情况下是会造成很大的损失,但是如果我们进行了手动捕获,那么整个程序会继续运行
    • 捕获异常的作用在于:提前假设某处会出现异常,做好准备,如果出现异常,就执行相对应的代码
  • 捕获所有异常,写法一:
    在这里插入图片描述
    例如:
    在这里插入图片描述

  • 捕获所有异常,写法二:
    在这里插入图片描述

  • 捕获指定异常:
    在这里插入图片描述
    例如:
    在这里插入图片描述

  • 捕获多个异常:
    在这里插入图片描述
    例如:
    在这里插入图片描述

  • 异常else:
    在这里插入图片描述

  • 异常finally:
    在这里插入图片描述
    例如:
    在这里插入图片描述

try:
# 表示这段代码有可能出现异常,但我也不确定
except:
# 如果try内的代码出现了异常,那么我用except来进行捕获,并执行except内的代码
else:
# 如果try内的代码没有出现异常,那么我执行else内的代码 
finally:
# 无论try内的代码有没有异常,我都要执行finally内的代码

# try和except是必须写且要成对出现的,而else和finally是可写可不写的
  • 异常的传递性
    • 基于函数之间的调用方式,异常会一层一层的向上传递,直到传递到我当前执行的最高的层级,如果在最高的层级没有调用try,程序就会直接抛出异常,如果调用try,就会尝试捕获
    • 因此,如果想要捕获异常,并不需要定位到出现异常的那句代码,只需要函数之间存在调用关系,我们在最顶层的调用处,依然可以运行try进行捕获,例如:
      在这里插入图片描述在这里插入图片描述

模块导入

  • 什么是模块:
    在这里插入图片描述
  • 模块的导入方式:
    在这里插入图片描述
    • [ ]表示可以省略
      在这里插入图片描述
    • 通过 . 可以使用模块内部的全部功能(类、函数、变量),且通过 . 来确定层级关系
    • 有时我们不需要使用模块内部的全部功能,就可以使用以下代码来导入模块中的某个具体方法,这种写法不需要 . ,可以直接写方法名
      在这里插入图片描述
    • 以下的导入方法,不需要 . 也可以使用模块中的全部方法
      在这里插入图片描述
    • 通过as 别名,可以更方便的使用模块
      请添加图片描述
    • 模块的导入一般写在代码文件的开头位置

自定义模块

  • 由于每个Python文件都可以作为一个模块,所以如果想要自定义模块,那么对应的文件名必须要符合标识符命名规则,例如:
    在这里插入图片描述
  • 注意事项:当导入多个模块的时候,且模块内有同名功能,当调用这个同名功能的时候,调用的是后面导入的模块的功能,如下:
    在这里插入图片描述
  • _ _ main _ _:
    • Python文件会内置一个_ _ name _ 的变量,当我们右键运行该文件时,这个文件是main文件,即它的 _ name _ 就等于 _ main _ ,但我们右键运行其他文件的时候,该文件不是main文件,即它的 _ name _ _ 不是_ _ main _ _,如下:
      在这里插入图片描述
  • _ _ all _ _:
    • _ _ all _ 是一个列表,如果一个模块文件中有 _ all _ _,当使用" from xxx import * "导入时,只能导入这个列表中的元素,如下:
      在这里插入图片描述
    • 但是,如果用" from xxx import xxx "导入时,可以导入_ _ all _ _内没有的元素

* 从物理上看,包相当于一个文件夹,里面包含一个_ _ init _ _ .py文件,还可以存放许多Python的模块(代码文件),通过包,逻辑上将一批模块归为一类,方便管理。如果去掉_ _ init _ _.py,那么这个包就真的变为一个文件夹。 

在这里插入图片描述
* 创建包后,包内会自动创建_ _ init _ _.py文件

  • 导入包
    在这里插入图片描述
    • 这种情况下,需要包名.模块名.功能名
    • 或者 from 包名 import 模块名
    • 这种情况下,不用包名,直接模块名.功能名就行
      在这里插入图片描述
    • 或者 from 包名.模块名 import 功能名
    • 这种情况下,不用包名.模块名,直接用功能名就行
      在这里插入图片描述

在这里插入图片描述
* _ _ all _ _ = [ ] ,[ ]里用“ ”或’ '都可以

pip安装第三方包

1. pip install 包名称 
# 国外官网安装
2. pip install -i https://pypi.tuna.tsinghua.edu.cn/simple 包名称
# 国内清华镜像网安装

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

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

相关文章

ubantu与windows文件传输(filezilla)

ubantu与windows文件传输(filezilla) windowsubantu20.04Fliezilla windows 到官网下载filezilla:https://www.filezilla.cn/,并安装。 ubantu20.04 1、安装vim sudo apt-get install vim2、安装FTP服务 sudo apt-get instal…

【机器人最短路径规划问题(栅格地图)】基于遗传算法求解

基于遗传算法求解机器人最短路径规划问题(栅格地图)的仿真结果 仿真结果: 路径长度的变化曲线: 遗传算法优化后的机器人避障路径:

Python入门学习:if语句与条件控制--and、or、in、not in详解与实践

Python入门学习:if语句与条件控制–and、or、in、not in详解与实践 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程&#x1…

[AIGC] JDK17中的Record类介绍

文章目录 什么是Record类Record类的特点Record类实践 我们都知道,从Java 14开始, JEP 359 推出了一个新的类型声明Record,Record 类型用来模拟不可变的数据结构,它能产生一个类包含一定数量的只读字段。 什么是Record类 在JDK14中引入了一…

jetson nano——编译安装PySide2

目录 1.打开我提供的文件or官网自己下载(需对应PyQt5的版本)2.解压文件3.进入目录4.安装clang5. 编译安装6.报错: error: ‘NPY_ARRAY_UPDATEIFCOPY’ was not declared in this scope7.又报错:error: ‘NPY_ARRAY_UPDATEIFCOPY’ was not de…

Yapi部署

【GO开发工程师】Yapi部署 推荐个人主页:席万里的个人空间 文章目录 【GO开发工程师】Yapi部署1、Yapi部署 1、Yapi部署 初始化yapi: git clone https://github.com/Ryan-Miao/docker-yapi.git cd docker-yapi docker-compose upyapi启动失败 1.cd进入…

MySQL里的两个“二次”

文章中所有图片均来自网络 一、double write 第一个二次是mysql一个崩溃恢复很重要的特性-重复写入。 doublewrite缓冲区是位于系统表空间中的存储区域,在该区域中,InnoDB会在将页面写入数据文件中的适当位置之前,从InnoDB缓冲池中刷新这些页…

海量物理刚体 高性能物理引擎Unity Physics和Havok Physics的简单性能对比

之前的博客中我们为了绕过ECS架构,相当于单独用Batch Renderer Group实现了一个精简版的Entities Graphics,又使用Jobs版RVO2实现了10w人同屏避障移动。 万人同屏对抗割草 性能测试 PC 手机端 性能表现 弹幕游戏 海量单位同屏渲染 锁敌 避障 非ECS 那么有…

dolphinscheduler海豚调度(三)SQL任务

在之前的博文中,我们已经介绍了DolphinScheduler海豚调度的基本概念和模块,安装部署和元数据切换,以及Shell任务的实践。今天,让我们来深入探讨DolphinScheduler中另一种常见的任务类型:SQL任务。 SQL任务是DolphinSc…

嵌入式学习 Day 26

数组指针和指针数组 (题外话) 数组指针:数组指针是一种指针,它指向一个数组的首地址。在C语言中,数组名本身就是一个指向数组首地址的指针,因此数组名可以被赋值给指针变量&#xff0c…

07 Qt自绘组件:图片预览小组件ImageViewer

系列文章目录 01 Qt自定义风格控件的基本原则-CSDN博客 02 从QLabel聊起:自定义控件扩展-图片控件-CSDN博客 03 从QLabel聊起:自定义控件扩展-文本控件-CSDN博客 04 自定义Button组件:令人抓狂的QToolButton文本图标居中问题-CSDN博客 0…

使用Jenkins部署前端Vue项目和后端Java服务

Jenkins安装相关插件,供后续使用(Dashboard - Manage Jenkins - Plugins) Maven Integration plugin https://plugins.jenkins.io/maven-plugin CloudBees Docker Build and Publish pluginhttps://plugins.jenkins.io/docker-build-publish…

Unity中的UI系统之GUI

目录 概述工作原理和主要作用基础控件重要参数及文本和按钮多选框和单选框输入框和拖动条图片绘制和框 复合控件工具栏和选择网络滚动视图和分组窗口 自定义整体样式自定义皮肤样式 概述 什么是UI系统 UI是User Interface(用户界面)的简称,用…

【pytorch】函数记录

你好你好! 以下内容仅为当前认识,可能有不足之处,欢迎讨论! 文章目录 torch.sum()torch.argmax()torch.nn.Parametertorch.unbindtorch.optim.Adam()[^adam]torch.cattorch.unsqueeze()torch.normalize()[^l2]torch.eyetorch.mmto…

网站https证书申请方式

网站HTTPS证书,也称为SSL证书或TLS证书,是一种数字证书,用于在用户浏览器与网站服务器之间建立安全的加密连接。当网站安装了HTTPS证书后,用户访问该网站时,浏览器地址栏会显示为"https://"开头,…

NoSQL--虚拟机网络配置

目录 1.初识NoSQL 1.1 NoSQL之虚拟机网络配置 1.1.1 首先,导入预先配置好的NoSQL版本到VMware Workstation中 1.1.2 开启虚拟机操作: 1.1.2.1 点击开启虚拟机: 1.1.2.2 默认选择回车CentOS Linux(3.10.0-1127.e17.x86_64) 7 …

微服务架构 SpringCloud

单体应用架构 将项目所有模块(功能)打成jar或者war,然后部署一个进程--医院挂号系统; > 优点: > 1:部署简单:由于是完整的结构体,可以直接部署在一个服务器上即可。 > 2:技术单一:项目不需要复杂的技术栈,往往一套熟悉的…

STM32标准库开发—硬件SPI外设

SPI外设简介 SPI1与SPI2所挂载的总线位置不一样,所以时钟频率也不一样,SPI2挂载在APB1时钟频率为36MHZ是SPI1的一半 I2S是一种音频传输协议,适用于STM32大容量产品 一般来说串口发送数据时是低位先行,SPI通信是高位先行 SPI框图 发…

173基于matlab的经典STAP处理机载雷达信号

基于matlab的经典STAP处理机载雷达信号,空时自适应信号处理的典型算法、滤波器和相关参数的仿真,程序已调通,可直接运行。 173 matlab 空时自适应信号处理 STAR (xiaohongshu.com)https://www.xiaohongshu.com/explore/65d9cf11000000000102b…

谷歌seo推广好还是竞价排名好?

事实上seo跟sem竞价并没有任何冲突,也并没有哪个更好的说法,关键在于理解它们各自的优势与局限性,并根据你的业务,预算来配合 Seo推广的优势在于成本,只要你的网站在搜索结果获得高排名,就能有源源不断的点…