Python模块篇(五)
模块
- 模块与包
- 模块的导入与使用
- 标准库的常用模块
- 第三方库的安装与使用(如:pip工具)
模块与包
模块是一个包含 Python 代码的文件,通常以 .py 作为扩展名。一个模块可以包含函数、类、变量,以及可执行的代码段。模块的作用是将代码分割成逻辑上独立的部分,以便更好地组织和复用
包是一个包含多个模块的目录。包通过在目录中包含一个特殊的 init.py 文件来区分普通目录和包目录。init.py 文件可以是空的,也可以包含包的初始化代码
模块的导入与使用
在 Python 中,导入和使用模块可以通过几种不同的方式来实现
- 使用 import 语句导入整个模块
这种方式导入整个模块,然后通过模块名访问其中的函数、类或变量
# math_operations.py
def add(a, b):return a + bdef subtract(a, b):return a - b
导入并使用模块
import math_operationsresult = math_operations.add(5, 3)
print(result) # 输出:8result = math_operations.subtract(5, 3)
print(result) # 输出:2
- 使用 from … import … 导入模块中的指定部分
这种方式可以只导入模块中的某个函数、类或变量,直接使用而不需要前缀模块名
from math_operations import add, subtractresult = add(5, 3)
print(result) # 输出:8result = subtract(5, 3)
print(result) # 输出:2
- 使用 as 关键字给模块或函数起别名
如果模块名或函数名较长,可以使用 as 关键字起一个别名,以简化后续的调用
import math_operations as moresult = mo.add(5, 3)
print(result) # 输出:8from math_operations import subtract as subresult = sub(5, 3)
print(result) # 输出:2
- 导入包中的模块
当模块位于包中时,可以使用点号 (.) 来导入包中的模块
math_utils/__init__.pybasic_operations.pyadvanced_operations.py
可以导入并使用 basic_operations.py 中的函数
from math_utils.basic_operations import addresult = add(5, 3)
print(result) # 输出:8
标准库的常用模块
Python 的标准库中包含了大量预先编写好的模块,可以直接导入并使用,极大地方便了开发。以下是一些常用的标准库模块及其功能简介
- os 模块
os 模块提供了与操作系统交互的功能,比如文件和目录操作、环境变量、进程管理等。
常用功能:
- os.listdir(path):列出指定目录下的文件和子目录。
- os.mkdir(path):创建目录。
- os.remove(path):删除文件。
- os.rename(src, dst):重命名文件或目录。
- os.getenv(key):获取环境变量的值。
import oscurrent_dir = os.getcwd() # 获取当前工作目录
print(current_dir)files = os.listdir('.') # 列出当前目录下的文件和目录
print(files)
- sys 模块
sys 模块提供了与 Python 解释器相关的功能和变量,可以访问命令行参数、控制 Python 运行环境等。
常用功能:
- sys.argv:获取命令行参数列表。
- sys.exit([status]):退出程序,status 是退出状态码。
- sys.path:获取模块的搜索路径
import sysprint(sys.argv) # 输出命令行参数列表
sys.exit(0) # 正常退出程序
- datetime 模块
datetime 模块用于处理日期和时间,可以创建、操作日期和时间对象。
常用功能:
- datetime.datetime.now():获取当前日期和时间。
- datetime.date(year, month, day):创建一个日期对象。
- datetime.timedelta(days=, seconds=, …):表示时间间隔,用于时间的加减运算。
from datetime import datetime, timedeltanow = datetime.now()
print(now)yesterday = now - timedelta(days=1)
print(yesterday)
- math 模块
math 模块提供了数学函数和常数,如三角函数、对数、平方根等。
常用功能:
- math.sqrt(x):计算平方根。
- math.sin(x)、math.cos(x):计算三角函数。
- math.log(x, base):计算对数。
import mathprint(math.sqrt(16)) # 输出:4.0
print(math.sin(math.pi / 2)) # 输出:1.0
- random 模块
random 模块用于生成随机数,可以用于随机选择、打乱顺序等。
常用功能:
- random.random():生成 0 到 1 之间的随机浮点数。
- random.randint(a, b):生成 [a, b] 之间的随机整数。
- random.choice(seq):从序列中随机选择一个元素。
- random.shuffle(seq):随机打乱序列。
import randomprint(random.random()) # 输出一个随机浮点数
print(random.randint(1, 10)) # 输出 1 到 10 之间的随机整数
- re 模块
re 模块用于正则表达式操作,可以进行复杂的字符串匹配、查找、替换等。
常用功能:
- rre.match(pattern, string):从字符串开头进行正则匹配。
- rre.search(pattern, string):在字符串中搜索符合正则的内容。
- rre.findall(pattern, string):查找所有匹配的内容。
import repattern = r'\d+' # 匹配一个或多个数字
text = "There are 123 apples and 456 oranges."matches = re.findall(pattern, text)
print(matches) # 输出:['123', '456']
- json 模块
json 模块用于处理 JSON 数据,可以将 Python 对象与 JSON 数据进行相互转换。
常用功能:
- json.dumps(obj):将 Python 对象转换为 JSON 字符串。
- json.loads(json_str):将 JSON 字符串转换为 Python 对象。
- json.dump(obj, file):将 Python 对象以 JSON 格式保存到文件中。
- json.load(file):从文件中读取 JSON 数据并转换为 Python 对象。
import jsondata = {'name': 'Alice', 'age': 25}
json_str = json.dumps(data)
print(json_str) # 输出:{"name": "Alice", "age": 25}data_from_json = json.loads(json_str)
print(data_from_json) # 输出:{'name': 'Alice', 'age': 25}
第三方库的安装与使用(如:pip工具)
在 Python 中,第三方库 是由社区或开发者提供的额外功能包,可以通过包管理工具 pip 来安装和管理。这些库可以极大地扩展 Python 的功能
pip 工具简介
- pip 是 Python 官方推荐的包管理工具,用于安装、升级和卸载 Python 包。使用 pip,你可以从 * Python 包索引(PyPI)中下载和安装各种第三方库。
现在基本使用pip3,pip 和 pip3 都是用于安装和管理Python包的工具,但它们的区别主要在于它们所对应的Python版本:
pip: 通常与 Python 2.x 版本绑定。当你使用 pip 命令时,它会默认安装和管理 Python 2.x 版本的包。
pip3: 专门用于 Python 3.x 版本。当你使用 pip3 命令时,它会默认安装和管理 Python 3.x 版本的包。
- 安装第三方库
要安装一个第三方库,比如requests(一个流行的HTTP库)
pip3 install requests
在联网环境中下载库,不安装
pip3 download requests -d /path/to/save
离线安装库
pip3 install --no-index --find-links=/path/to/save requests
升级第三方库
pip3 install --upgrade requests
卸载第三方库
pip3 uninstall requests
查看已安装的库
pip3 list
查看库的详细信息
pip3 show requests
- 使用requirements文件安装库
在实际项目中,通常会使用一个requirements.txt文件来列出项目所需的所有库及其版本
pip3 install -r requirements.txt
生成requirements文件
pip3 freeze > requirements.txt
相关文章:
Python模块篇(五)
模块 模块与包模块的导入与使用标准库的常用模块第三方库的安装与使用(如:pip工具) 模块与包 模块是一个包含 Python 代码的文件,通常以 .py 作为扩展名。一个模块可以包含函数、类、变量,以及可执行的代码段。模块的…...
西安旅游系统--论文pf
TOC springboot383西安旅游系统--论文pf 第1章 绪论 1.1 课题背景 二十一世纪互联网的出现,改变了几千年以来人们的生活,不仅仅是生活物资的丰富,还有精神层次的丰富。在互联网诞生之前,地域位置往往是人们思想上不可跨域的鸿…...
分享一个思路,使用插桩技术解决慢查询测试问题
前段时间,我负责测试的系统在生产环境运行出现问题。该系统对于响应时间要求较高,问题发生的时候并发很高,出现大量请求超时,超时请求比例随时间推迟越来越高,最后几乎全部请求都失败。滚动重启了所有进程后࿰…...
【STM32项目】在FreeRtos背景下的实战项目的实现过程(二)
个人主页~ 实战项目的实现过程(一)~ 实战项目的实现过程 二、初步了解各个外设硬件1、OLED模块2、GPS模块3、MPU6050模块4、超声测距模块5、温度测控模块6、语音模块7、SIM模块8、按键模块 三、查阅资料1、查看手册2、查找例程 四、研究硬件功能1、OLED…...
javaer快速入门 goweb框架 gin
gin 入门 前置条件 安装环境 配置代理 # 配置 GOPROXY 环境变量,以下三选一# 1. 七牛 CDN go env -w GOPROXYhttps://goproxy.cn,direct# 2. 阿里云 go env -w GOPROXYhttps://mirrors.aliyun.com/goproxy/,direct# 3. 官方 go env -w GOPROXYhttps://goproxy.…...
SQL - 数据类型
字符串类型 char(10),存储固定长度字符串 varchar(255),存储可变长度字符串 mediumtext,中文本,对于存储JSON对象、SCV字符串很好使 longtext,长文本,可以很好地存储教本或许多年地日志文件 tinytext&#…...
进程相关知识
进程和程序的区别 程序 程序是静态的,是存储在硬盘、SSD等存储介质中的一个文件,通常由源代码(如 .c 文件)编译生成的二进制可执行文件(如 a.out)。程序包含了指令和数据,但在未被执行时&#…...
萝卜快跑和端到端的自动驾驶(1)
先看一篇论文 2311.18636 (arxiv.org) 这篇论文里有一个非常好的图 比较了一下模块化任务(级联任务)和端到端自动驾驶的区别 首先什么叫模块化任务(级联) 如上图所示,左边的方块中的子方块,是展示了自动驾驶获取数据的途径,这里包括&…...
通信原理学习笔记
一个手机通话需要经过下面三个网络 类别接入网(Access Network)承载网(Transport Network)核心网(Core Network)定义连接终端用户与电信网络的部分。在接入网和核心网之间传输数据的网络。处理、交换和管理…...
系统编程---day4
1. 链接文件 命令行: ln -s 文件名 softlink 1.1 symlink int symlink(const char *oldpath, const char *newpath); 功能:创建一个链接向oldpath文件的新符号链接文件 参数:oldpath:被链接向的文件的路径 newpath:新符号链接文件 返回值:成功返回0,失败返回…...
01:电容的什么,各类电容的优缺点
1.电容是什么? 电容是由两块不连通的导体,已经中间的不导电材料组成 电容结构: 1.2电容的容量计算公式 C ε s d \displaystyle\frac{εs}{d} dεs 1.3常见电容的种类 1.4各类电容的特点...
Android+Jacoco+code-diff全量、增量覆盖率生成实战
背景 主要是记录下Android项目使用jacoco生成代码覆盖率的实战流程,目前已完成全量覆盖方案,仅使用jacoco就能实现; 由于我们的Android端是使用Java和kotlin语言,目前增量的方案code-diff仅针对Java代码,卡在kotlin文件的分析&am…...
乌龟对对碰在线版
爆肝两天使用vue开发了一个在线版的乌龟对对碰小游戏之幸运对对碰。没有找到合适的乌龟素材,现在使用小兔子代替。 体验地址:幸运对对碰 | 乌龟对对碰小游戏 之前的python版本的乌龟对对碰:写文章-CSDN博客 乌龟对对碰-幸运对对碰...
如何更改select option边框颜色和选中的颜色
<!doctype html> <html> <head> <meta charset"utf-8"> <title>如何更改select option边框颜色和选中的颜色</title> </head><style>ul{border: 1px solid #000000;width: 500px;height: auto;background-color: aq…...
6. 数据结构—串的匹配算法
1.BF算法(暴力算法) //模式匹配(暴力算法) int Index(SString S,SString T){int i1,j1;while(i<S.length&&j<T.length){if(S[i]T[i]){i;j;}else{ii-j2; //最开始匹配的位置的后一个j1; //从头匹配 }}if(j>T.length)return i-T.length;return return 0…...
九大服务架构性能优化方式
来源:九大服务架构性能优化方式 目录 性能优化九大方式: 缓存 使用什么样的缓存 缓存常见问题 缓存淘汰 缓存数据一致性 并行化处理 批量化处理 数据压缩合并 无锁化 顺序写 分片化 避免请求 池化 异步处理 总结 最近做了一些服务性能优…...
【RabbitMQ】 相关概念 + 工作模式
本文将介绍一些MQ中常见的概念,同时也会简单实现一下RabbitMQ的工作流程。 MQ概念 Message Queue消息队列。是用来存储消息的队列,多用于分布式系统之间的通信。 系统间调用通常有:同步通信和异步通信。MQ就是在异步通信的时候使用的。 同…...
嵌入式学习 ——(Linux高级编程——进程)
目录 一、进程的含义 二、进程和程序的区别 三、进程的作用 四、进程的状态 五、进程的调度与上下文切换 六、查询进程相关命令 七、fork()函数 八、getpid()和getppid()函数 九、面试题解析: 十、应用场合及测试 一、进程的含义 进程指正在运行的程序&a…...
C++练习备忘录
1. 保留两位小数输出格式 #include <iostream> #include <iomanip> using namespace std; int main() {double S 0;S (15 25) * 20 / 2;cout << fixed << setprecision(2) << S;return 0; }2. 设置输出宽度 #include <iostream> #inclu…...
改善工作流
快捷键管理器 打开Editor->Shortcuts查看和编辑Unity中的快捷键 示例 ShiftSpace 窗口最大化 P 选择预制体 进入预制体编辑模式 单一检视窗口 选择组件,选择Properties打开一个窗口,显示组件信息;切换对象,窗口信息不会改变…...
模型参数、模型存储精度、参数与显存
模型参数量衡量单位 M:百万(Million) B:十亿(Billion) 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的,但是一个参数所表示多少字节不一定,需要看这个参数以什么…...
连锁超市冷库节能解决方案:如何实现超市降本增效
在连锁超市冷库运营中,高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术,实现年省电费15%-60%,且不改动原有装备、安装快捷、…...
[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?
论文网址:pdf 英文是纯手打的!论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误,若有发现欢迎评论指正!文章偏向于笔记,谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...
2021-03-15 iview一些问题
1.iview 在使用tree组件时,发现没有set类的方法,只有get,那么要改变tree值,只能遍历treeData,递归修改treeData的checked,发现无法更改,原因在于check模式下,子元素的勾选状态跟父节…...
CocosCreator 之 JavaScript/TypeScript和Java的相互交互
引擎版本: 3.8.1 语言: JavaScript/TypeScript、C、Java 环境:Window 参考:Java原生反射机制 您好,我是鹤九日! 回顾 在上篇文章中:CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...
ServerTrust 并非唯一
NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...
反射获取方法和属性
Java反射获取方法 在Java中,反射(Reflection)是一种强大的机制,允许程序在运行时访问和操作类的内部属性和方法。通过反射,可以动态地创建对象、调用方法、改变属性值,这在很多Java框架中如Spring和Hiberna…...
#Uniapp篇:chrome调试unapp适配
chrome调试设备----使用Android模拟机开发调试移动端页面 Chrome://inspect/#devices MuMu模拟器Edge浏览器:Android原生APP嵌入的H5页面元素定位 chrome://inspect/#devices uniapp单位适配 根路径下 postcss.config.js 需要装这些插件 “postcss”: “^8.5.…...
Windows安装Miniconda
一、下载 https://www.anaconda.com/download/success 二、安装 三、配置镜像源 Anaconda/Miniconda pip 配置清华镜像源_anaconda配置清华源-CSDN博客 四、常用操作命令 Anaconda/Miniconda 基本操作命令_miniconda创建环境命令-CSDN博客...
Leetcode33( 搜索旋转排序数组)
题目表述 整数数组 nums 按升序排列,数组中的值 互不相同 。 在传递给函数之前,nums 在预先未知的某个下标 k(0 < k < nums.length)上进行了 旋转,使数组变为 [nums[k], nums[k1], …, nums[n-1], nums[0], nu…...
