Python(白银时代)——模块、包、异常
异常
概念
-
程序运行时,如果Python 解释器遇到了错误,会停止程序运行,并且提示错误信息,这就是异常
-
程序停止执行并提示错误信息的动作,称为 抛出异常
异常捕获
-
try: 里面的代码,不确定是否能够正常执行.
-
except: 当try里面的代码出现错误时,程序会跳到except 里执行
-
对某些代码的执行不确定是否正确,可以使用 try: except 来捕获并处理异常
语法
try:尝试执行代码except:出现错误的处理
错误类型
-
在Python中,程序执行时可能会遇到 不同类型的异常,并且需要针对不同类型的异常,做出不同的响应,这时就需要捕获异常类型了
-
当 Python解释器 抛出异常时,最后一行错误信息的第一个单词,就是错误类型
-
如果希望 无论出现任何错误,都不会因为 Python 解释器 抛出异常而被终止,可以用 except Exception
语法
try:尝试执行的代码
except 错误类型1:针对错误类型1,对应的处理代码
except (错误类型2,错误类型3):针对错误类型2和3,对应的处理代码
except Exception as e:未知错误处理
示例
try:# 除零异常 案例# num=10/0# 其它异常ss=int("df")except ZeroDivisionError:print("这是除0异常")
except Exception as e:print("未知异常:",e)
输出结果
异常的传递
-
当函数/方法 执行出现异常,会将异常传递给 函数/方法 的调用一方
-
如果 传递到主程序 ,仍然 没有异常处理,程序才会被终止
主动抛出异常
-
在开发中,除了 代码执行出错 Python 解释器 抛出异常之外,还可以根据 应用程序特有的业务需求,主动抛出异常
-
Python 中提供了一个 Exception 异常类
-
如果想要主动抛出异常
-
创建一个 Exception 的对象
-
使用 raise 关键字抛出异常
-
示例
def input_pwd(pwdd):""" 校验密码,密码长度只能是6位 """if len(pwdd)!=6:ex=Exception("主动抛出异常:密码长度不符合规定!!")raise exprint("你输入的密码是:%s" %pwdd)try:input_pwd("2332323232")
except Exception as e:print(e)
输出结果
模块
概念
-
模块是 Python 程序架构的一个核心概念
-
每一个以扩展名 py 结尾的 Ptyon 源代码文件都是一个 模块
-
模块名 同样也是一个标识符,需要符合标识符的命名规则
-
在模块中定义的 全局变量、函数、类 都是提供给外面直接使用的工具
-
模块 就好比是工具包,要想使用这个工具包中的工具,就需要先导入这个模块
import 导入示例
# 方式一
import 模块名1,模块名2# 方式二
import 模块名1
import 模块名2# 方式三,导入后使用别名
import 模块1 as 模块别名
导入后,通过模块名. 使用 模块提供的工具(全局变量、函数、类)
from... import 导入
-
如果希望 从某一个模块 中,导入 部分 工具,就可以使用 from ... import 的方式
-
import 模块名 是一次性 把模块中 所有工具全部导入,并且通过 模块名/别名 访问
-
导入后不需要通过 模块名. ,可以直接使用 模块提供的工具 ——全局变量、函数、类
-
如果 两个模块,存在同名的函数,后导入的模块会覆盖先导入的模块
-
一旦发生冲突,可以使用 as 关键字给其中一个工具起一个别名
# 从模块中导入某个工具
form 模块名1 import 工具名# 导入所有工具(不推荐使用,出现同名工具不好查)
from 模块名 import *
示例
import random as rd
from tqdm import tqdmnum=rd.randint(0,10)
print("生成的随机数是:%d" %num)# 生成进度条
for i in tqdm(range(10)):pass
输出结果
原则
-
每一个文件都应该是可以被导入的
-
一个独立的 Python 文件就是一个 模块
-
在导入文件时,文件中 所有没有任何缩进的代码 都会被执行一遍
__name__ 属性
-
__name__ 可以做到,测试模块的代码 只在测试情况下运行,而在 被导入时不会执行
-
__name__ 是 Python 的一个内置属性,记录着一个字符串
-
如果被其他文件导入 __name__ 就是模块名
-
如果 是当前执行的程序 __name__ 是 __main__
示例
cal.py 文件内容
name ="张三"def add(a,b):return a+bdef reduce(a,b):return a-bprint("计算结果是:%d" %add(1,2))
hello3.py 文件内容
import calnum=cal.add(2,2)
print("num的值:%d" %num)
执行 hello3.py 的结果
如果不想执行 cal.py 模块中打印的内容,可以加 if __name__ =="__main__"
name ="张三"def add(a,b):return a+bdef reduce(a,b):return a-bif __name__ == "__main__":print("计算结果是:%d" %add(1,2))
修改完 cal.py 后,再次执行 hello3.py 文件
包
概念
-
包 是一个包含多个模块的 特殊目录
-
目录下有个特殊文件 __init__.py
-
包名的命名方式 和变量名一致,小写字母 +_
-
优点
-
使用 import 包名,可以一次性导入包中所有模块
-
__init__.py 文件
-
要在外界使用 包 中的模块,需要在 __init__.py 中指定 对外界提供的模块列表
# 从当前目录 导入模块列表
from . import test1
from . import test2
示例
制作模块
发布模块
-
如果希望自己的模块,分享给其他人,可以按照以下步骤操作
-
创建 setup.py
from distutils.core import setup setup(name="ani",#包名version="1.0", #版本description="say hello模块", # 描述信息long_description="完成的 say hello 模块", # 完事的描述信息author="zq", # 作者author_email="xxx@qq.com", # 作者邮箱url="www.xxx.com", # 主页py_modules=["ani.test1","ani.test2"] # 包中所有要分享的模块 )
-
构建模块
-
命名行输入: python setup.py build
-
-
生成发布的压缩包
-
命名行输入: python setup.py sdist
-
-
安装模块
-
解压 ani-1.0.tar.gz 压缩包
-
进入解压后的目录,命令行输入:python setup.py install
卸载模块
-
直接从安装目录下,把安装的模块 目录 删除就可以了
pip 安装第三方模块
-
pip 是一个现代的,通用的 Python 包管理工具
-
提供了对 Python 包的查找、下载、安装、卸载等功能
-
安装与制裁命令如下
-
pip install xxx
-
pip uninstall xxx
-
示例
程序猿与投资生活实录已改名为 程序猿知秋,WX同款,欢迎关注!
相关文章:

Python(白银时代)——模块、包、异常
异常 概念 程序运行时,如果Python 解释器遇到了错误,会停止程序运行,并且提示错误信息,这就是异常 程序停止执行并提示错误信息的动作,称为 抛出异常 异常捕获 try: 里面的代码,不确定是否能够正常执行. …...
小程序和Vue写法的区别
小程序和Vue写法的区别主要有以下几点: 语法不同:小程序使用的是WXML、WXSS和JS,而Vue使用的是HTML、CSS和JSX。 数据绑定方式不同:小程序使用的是双向数据绑定,而Vue使用的是单向数据流。 1)在小程序中需…...
如何实现分布式锁
一、锁的作用 锁是为了解决多线程情况下,对于共享资源的访问安全问题。 但是当系统是分布式的时候,本地锁已经没法锁住所需要的资源,因为本地获取了锁,其他系统无法得知本地锁的情况。 分布式锁,是独立于系统的第一方…...

使用VS2019连接Microsoft SQL Server Compact 4.0数据库
简介 SQL Server Compact Edition是微软推出的一个适用于嵌入到移动应用的精简数据库产品,Windows Mobile开发人员能够使用SQL Server CE开发出将数据管理能力延展到Window Mobile移动设备上的应用程序。虽然SQL Server CE占用的磁盘空间只有3到5兆左右,…...
Vue2 和 Vue3 的对比
Vue2 vs Vue3 Vue 是一款流行的 JavaScript 框架,用于构建交互式 Web 界面。Vue2 和 Vue3 是 Vue.js 的两个版本。Vue3 是 Vue.js 的最新版本,于 2020 年 9 月正式发布。Vue3 有许多改进和新功能,下面我们将对 Vue2 和 Vue3 进行比较。 性能…...

[数据结构]二叉树的链式存储结构
目录 二叉树的链式存储结构:: 1.创建一颗二叉树 2.二叉搜索树简介 3.前序、中序以及后序遍历 4.层序遍历 5.求一棵树的节点个数代码实现 6.求一棵树的高度代码实现 7.求叶子节点个数代码实现 8.求第K层节点个数代码实现 9.二叉树查找值为x的节点 二叉树…...

黑马程序员 Redis 踩坑及解决
文章目录实战篇p30 短信登录-隐藏用户敏感信息p50 优惠券秒杀-添加优惠券p69 秒杀优化-异步秒杀思路p81 达人探店-点赞排行榜p87 好友关注-实现滚动分页查询问题 1问题 2p90 附近商铺-实现附近商户功能实战篇 p30 短信登录-隐藏用户敏感信息 问题描述:登录后会跳转…...
Matlab实现粒子群算法
粒子群算法(Particle Swarm Optimization,PSO)是一种群体智能算法,通过模拟自然界中鸟群、鱼群等生物群体的行为,来解决优化问题。 在PSO算法中,每个个体被称为粒子,每个粒子的位置表示解空间中…...
tailwindcss 写原生html
需要注意:html文件中引入的是output.css input.css写那三行预留的就可以了打包的时候只要打包html output.css img文件夹句ok,其他都不用原理是运行时生产output.css文件,直接【注意!注意!注意!class"…...

Java开发一年不到,来面试居然敢开口要20K,面完连8K都不想给~
前言 我的好朋友兼大学同学老伍家庭经济情况不错,毕业之后没两年自己存了点钱加上家里的支持,自己在杭州开了一家网络公司。由于公司不是很大所以公司大部分的开发人员都是自己面试的,近期公司发展的不错,打算扩招也面试了不少人…...

LeetCode题解 20(17,79) 电话号码的字母组合,单词搜索<回溯>
文章目录电话号码的字母组合(17)代码解答单词搜索(79)代码解答电话号码的字母组合(17) 思路: 根据题意我们必须根据数字获取对应的字符数组,因此我们先定义1个字符数组表示这个电话表 private String[] letters {"","","abc","…...

路径之谜 蓝桥杯 89
题目描述小明冒充 X 星球的骑士,进入了一个奇怪的城堡。城堡里边什么都没有,只有方形石头铺成的地面。假设城堡地面是 nn 个方格。如下图所示。按习俗,骑士要从西北角走到东南角。可以横向或纵向移动,但不能斜着走,也不…...
Mysql数据库如何调优
MYSQL数据库调优 索引 1、对于常用的查询字段加索引,但如果常用字段只有几个常量值就不需要加索引,或者使用索引会失效的情况; 2、索引失效的情况: 1、索引列使用函数,计算(加减乘除等) …...

CAN(FD)记录仪在新能源汽车整车控制器(VCU)、电池管理系统(BMS)、电机控制器(MCU)、发动机ECU中的应用,免去出差烦恼
今天介绍CAN(FD)记录仪在新能源汽车整车控制器(VCU)、电池管理系统(BMS)、电机控制器(MCU)、发动机ECU中的应用 第一步:新能源汽车整车控制器(VCU)先供上电,…...

【设计模式】23种设计模式之七大原则
【设计模式】23种设计模式之七大原则什么是设计模式的原则1、单一职责原则基本介绍案例分析注意事项2、接口隔离原则基本介绍案例分析代码实现3、依赖倒转原则基本介绍案例分析依赖传递的三种方式注意事项4、里氏替换原则关于继承性的思考和说明基本介绍案例分析5、开闭原则ocp…...
python - 文件操作
1. 概念 计算机内存通常分为两种类型:主存储器和辅助存储器。 主存储器是计算机中最重要的存储器类型之一。它是计算机中用于存储正在运行的程序和数据的存储器。主存储器通常是易失性的,这意味着当计算机关闭时,其中存储的数据将被删除。主存…...

docker打包golang应用
一、错误的打包方式在本地环境编译,然后将可执行程序放入 alpine(docker.io/alpine:latest)准备web程序package mainimport ("fmt""net/http" )func main() {server : &http.Server{Addr: ":8888",}http.HandleFunc("/"…...

redis 内容总结
目录redis 内容列举Redis和Memcached比较Redis简介1、Redis 数据结构2、Redis的持久化机制3、Redis 内容管理(淘汰策略/删除策略)4、Redis 事务5、Redis 缓存三大问题6、Redis 集群7、Redis 应用redis 内容列举 官网:https://redis.io/ 中文…...

贪心算法(一)
一、概念 贪心算法的核心思想是,在处理一个大问题时,划分为多个局部并在每个局部选择最优解,并且认为在每个局部选择最优解,那么最后全局的问题得到的就是最优解。 贪心算法可以解决一些问题,但是不适用于所有问题&a…...

【栈和队列OJ题】有效的括号用队列实现栈用栈实现队列设计循环队列
📝个人主页:Sherry的成长之路 🏠学习社区:Sherry的成长之路(个人社区) 📖专栏链接:数据结构 🎯长路漫漫浩浩,万事皆有期待 文章目录OJ题1.有效的括号1.1…...

遍历 Map 类型集合的方法汇总
1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...

centos 7 部署awstats 网站访问检测
一、基础环境准备(两种安装方式都要做) bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats࿰…...

《通信之道——从微积分到 5G》读书总结
第1章 绪 论 1.1 这是一本什么样的书 通信技术,说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号(调制) 把信息从信号中抽取出来&am…...
TRS收益互换:跨境资本流动的金融创新工具与系统化解决方案
一、TRS收益互换的本质与业务逻辑 (一)概念解析 TRS(Total Return Swap)收益互换是一种金融衍生工具,指交易双方约定在未来一定期限内,基于特定资产或指数的表现进行现金流交换的协议。其核心特征包括&am…...

HBuilderX安装(uni-app和小程序开发)
下载HBuilderX 访问官方网站:https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本: Windows版(推荐下载标准版) Windows系统安装步骤 运行安装程序: 双击下载的.exe安装文件 如果出现安全提示&…...
【git】把本地更改提交远程新分支feature_g
创建并切换新分支 git checkout -b feature_g 添加并提交更改 git add . git commit -m “实现图片上传功能” 推送到远程 git push -u origin feature_g...

Java面试专项一-准备篇
一、企业简历筛选规则 一般企业的简历筛选流程:首先由HR先筛选一部分简历后,在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如:Boss直聘(招聘方平台) 直接按照条件进行筛选 例如:…...

以光量子为例,详解量子获取方式
光量子技术获取量子比特可在室温下进行。该方式有望通过与名为硅光子学(silicon photonics)的光波导(optical waveguide)芯片制造技术和光纤等光通信技术相结合来实现量子计算机。量子力学中,光既是波又是粒子。光子本…...

Docker 本地安装 mysql 数据库
Docker: Accelerated Container Application Development 下载对应操作系统版本的 docker ;并安装。 基础操作不再赘述。 打开 macOS 终端,开始 docker 安装mysql之旅 第一步 docker search mysql 》〉docker search mysql NAME DE…...

初探Service服务发现机制
1.Service简介 Service是将运行在一组Pod上的应用程序发布为网络服务的抽象方法。 主要功能:服务发现和负载均衡。 Service类型的包括ClusterIP类型、NodePort类型、LoadBalancer类型、ExternalName类型 2.Endpoints简介 Endpoints是一种Kubernetes资源…...