Python训练Day30
模块和库的导入
- 导入官方库的三种手段
- 导入自定义库/模块的方式
- 导入库/模块的核心逻辑:找到根目录(python解释器的目录和终端的目录不一致)
1.1标准导入:导入整个库
# 方式1:导入整个模块
import mathprint("方式1:使用 import math")
print(f"圆周率π的值:{math.pi}")
print(f"2的平方根:{math.sqrt(2)}\n")
1.2 从库中导入特定项
当使用from语法从库中导入特定的函数或类时,这些函数或类就可以在您的代码中直接使用,不需要添加模块名作为前缀。因为在导入时没有包括模块的完整路径,前面也不能加上库名。
# 方式2:导入特定的函数或变量
from math import pi, sqrtprint("方式2:使用 from math import pi, sqrt")
print(f"圆周率π的值:{pi}")
print(f"2的平方根:{sqrt(2)}\n")
1.3 非标准导入:导入整个库
如下,●这将导入`math`模块中定义的所有公开函数和变量。
●和上述from同理,直接调用`sin()`、`cos()`等,而无需`math.`前缀。
from math import *print(f"圆周率π的值:{pi}")
print(f"2的平方根:{sqrt(2)}")
模块、包的定义
模块(Module)
- 本质:以 `.py` 结尾的**单个文件**,包含Python代码(函数、类、变量等)。
- 作用:将代码拆分到不同文件中,避免代码冗余,方便复用和维护。
包(Package)
在python里,包就是库
- 本质:有层次的文件目录结构(即文件夹),用于组织多个模块和子包。
- 核心特征:包的根目录下必须包含一个 `__init__.py` 文件(可以为空),用于标识该目录是一个包。
使用场景:
若编写一个计算圆面积的代码并保存为 `circle.py`,这个文件就是一个模块。使用时通过 `import circle` 导入模块,调用其中的函数(如 `circle.calculate_area(5)`)。
IDE(如 VSCode 或 PyCharm)通常会将你打开的项目文件夹设为“根目录”(或者说,运行时的工作目录)。Python 在导入模块时,会从这个根目录(以及其他一些标准位置和脚本所在的目录)开始查找。
场景1: main.py 和 circle.py 都在同一目录
项目根目录/
├── main.py
└── circle.py
- 模块导入 :因为它们在同一层, main.py 找 circle.py 很方便,直接喊一声名字就能找到。所以在 main.py 里可以直接写 from circle import calculate_area 来导入 circle.py 里的 calculate_area 函数。
- 运行方式 :直接在终端运行 python main.py 就行,就像在书架所在的房间里直接拿起 main.py 这本书开始读。
场景2: main.py 和 circle.py 都在根目录的子目录 model/ 下
项目根目录/
└── model/├── __init__.py (推荐添加,将 model 目录标记为包)├── main.py└── circle.py
- 模块导入 :虽然它们在同一个格子里,但 main.py 找 circle.py 还是直接喊名字就行,所以导入语句还是 from circle import calculate_area 。
- 运行方式 :有两种方式。一是在项目根目录下运行 python model/main.py ,就像在书架所在的房间里告诉别人去拿 model 格子里的 main.py 这本书;二是先进入 model 文件夹( cd model ),再运行 python main.py ,就像自己走到 model 格子前拿起 main.py 读。
场景3: main.py 在根目录, circle.py 在子目录 model/ 下
项目根目录/
├── main.py
└── model/├── __init__.py (必需添加,将 model 目录标记为一个可导入的包)└── circle.py
- 模块导入 : main.py 要找 circle.py 就不能只喊名字了,得说清楚在哪个格子里,所以导入语句要写成 from model.circle import calculate_area 。
- 运行方式 :直接在终端运行 python main.py 。但如果 circle.py 在更复杂的目录结构里,直接用 python model/main.py 可能会报错,这时可以用 python -m model.main ,Python 会把项目根目录加到搜索路径的开头,这样就能找到 model 文件夹里的 circle.py 了。
@浙大疏锦行
相关文章:
Python训练Day30
模块和库的导入 知识点 回顾 : 导入官方库的三种手段导入自定义库/模块的方式导入库/模块的核心逻辑:找到根目录(python解释器的目录和终端的目录不一致) 1.1标准导入:导入整个库 # 方式1:导入整个模块 imp…...
面试相关的知识点
1 vllm 1.1常用概念 1 vllm:是一种大模型推理的框架,使用了张量并行原理,把大型矩阵分割成低秩矩阵,分散到不同的GPU上运行。 2 模型推理与训练:模型训练是指利用pytorch进行对大模型进行预训练。 模型推理是指用训…...
【notepad++如何设置成中文界面呢?】
“Notepad”是一款非常强大的文本编辑软件,将其界面设置成中文的方法如下: 一、工具/原料: 华为 Matebook 15、Windows 10、Notepad 8.4.6。 二 、具体步骤: 1、找到任意一个文本文件,比如 txt 格式的文…...
从版本控制到协同开发:深度解析 Git、SVN 及现代工具链
前言:在当今软件开发的浪潮中,版本控制与协同开发无疑扮演着举足轻重的角色。从最初的单兵作战到如今大规模团队的高效协作,一套成熟且得力的版本控制系统以及围绕其构建的现代工具链,已然成为推动软件项目稳步前行的关键引擎。今…...
十一、xlib绘制编辑框-续
系列文章目录 本系列文章记录在Linux操作系统下,如何在不依赖QT、GTK等开源GUI库的情况下,基于x11窗口系统(xlib)图形界面应用程序开发。之所以使用x11进行窗口开发,是在开发一个基于duilib跨平台的界面库项目&#x…...
PyTorch进阶实战指南:02分布式训练深度优化
PyTorch进阶实战指南:02分布式训练深度优化 前言 在大模型时代,分布式训练已成为突破单机算力瓶颈的核心技术。本文深入解析PyTorch分布式训练的技术实现,从单机多卡并行到万卡集群协同,系统揭示现代深度学习规模化训练的核心机制…...
使用Vite创建一个动态网页的前端项目
1. 引言 虽然现在的前端更新换代的速度很快,IDE和工具一批批的换,但是我们始终要理解一点基本的程序构建的思维,这些环境和工具都是为了帮助我们更快的发布程序。笔者还记得以前写前端代码的时候,只使用文本编辑器,然…...
常见的LLM
常见的 LLM(大语言模型,Large Language Models)可以按照开源/闭源、机构/公司、用途等维度分类。以下是一些主流和常见的 LLM 及其简介: 一、开源 LLM Meta(Facebook) 名称参数量特点LLaMA 1 / 2 / 37B /…...
助力 FPGA 国产化,ALINX 携多款方案亮相深圳、广州“紫光同创 FPGA 技术研讨会”
5 月中旬,一年一度的紫光同创技术研讨会系列活动正式拉开帷幕,相继在深圳、广州带来 FPGA 技术交流盛宴。 ALINX 作为紫光同创官方合作伙伴,长期助力推动 FPGA 国产化应用发展,此次携多款基于 Kosmo-2 系列产品开发的方案 demo 亮…...
深入浅出IIC协议 - 从总线原理到FPGA实战开发 --第四篇:I2C工业级优化实践
第四篇:I2C工业级优化实践 副标题 :从实验室到产线——I2C控制器的高可靠设计秘籍 1. 时序收敛技巧 1.1 关键路径识别与优化 Vivado时序报告解析 : Slack (MET): 0.152ns (要求≥0) Data Path Delay: 3.821ns (逻辑布线) Cell Delay: i…...
【leetcode】70. 爬楼梯
文章目录 1. 数组2. 优化空间 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 示例 1: 输入:n 2 输出:2 解释:有两种方法可以爬到楼顶。 1 阶 1…...
【web全栈】若依框架B站学习视频
文章目录 基础篇-01 AI若依导学视频基础篇02 若依搭建基础篇03 入门案例基础篇04 功能详解-权限控制 基础篇-01 AI若依导学视频 基础篇02 若依搭建 基础篇03 入门案例 基础篇04 功能详解-权限控制...
MFC 捕捉桌面存成jpg案例代码
下面是关于截屏并保存成jpg文件的代码。由主函数OnCapScreenJpg()、DDBToDIB()、JpegFromDib()、DibToSamps()以及QuadFromWord()函数组成。这些函数的功能包括截取屏幕、将截取的屏幕转成设备无关bmp、再进一步压缩成jpeg格式。这些代码是从网上得到的,得到的代码没…...
2.4.4-死锁的处理策略-检测和解除
知识总览 死锁的检测 用资源分配图这种数据结构来检测是否产生了死锁,资源分配图上有2种节点,进程节点用圆圈表示,一个圆圈代表一个进程,还有资源节点,一个矩形代表一类资源,用矩形中的圆圈表示当前类型的…...
豪越智能仓储:为消防应急物资管理“上锁”
在城市的繁华街角,一场突如其来的大火无情地肆虐着一栋商业大楼。火焰在楼内疯狂蔓延,滚滚浓烟迅速弥漫,人们的生命财产安全受到了严重威胁。消防警报声骤然响起,消防队员们迅速出动,争分夺秒赶赴火灾现场。然而&#…...
(06)数字化转型之质量管理:遵循PDCA规范的全流程避险指南
在全球化竞争和消费升级的双重驱动下,质量管理已从单纯的产品检验演变为企业核心竞争力的重要组成部分。一个完善的质量管理体系不仅能降低质量成本、提升客户满意度,更能成为品牌差异化的战略武器。本文将系统性地介绍现代企业质量管理的完整框架&#…...
图论算法精解(Java 实现):从基础到高频面试题
一、图的基础表示方法 1.1 邻接矩阵(Adjacency Matrix) 邻接矩阵是表示图的一种直观方式,它使用一个二维数组来存储节点之间的连接关系。对于一个有 n 个节点的图,邻接矩阵是一个 nn 的矩阵,其中 matrix [i][j] 表示…...
[Linux] Linux信号量深度解析与实践(代码示例)
Linux信号量深度解析与实践 文章目录 Linux信号量深度解析与实践一、什么是信号量1. 信号量的核心概念2. 信号量的分类3. 信号量的操作机制 二、怎么用信号量1. 信号量API的深度解析(1)无名信号量API(2)有名信号量API(…...
Switch最新 模拟器 Eden(伊甸)正式发布 替代Yuzu模拟器
Switch最新 模拟器 Eden(伊甸)正式发布 替代Yuzu模拟器 100 帧跑满《塞尔达传说:旷野之息》 这款模拟器基于 Yuzu 框架开发,但团队强调它并非…...
[cg] [ds]深度缓冲z与线性z推导
4. GLSL 代码实现 在着色器中,将深度缓冲值转换为线性深度: float LinearizeDepth(float depth, float near, float far) {// OpenGL 的 NDC 深度范围是 [-1, 1],需转换float z_ndc 2.0 * depth - 1.0;// 计算线性深度return (2.0 * near …...
clock的时钟频率check代码
在芯片验证中,经常遇到需要check时钟频率的场景,由于时钟数量有很多,手动写代码得到后年马月,所以我这边写了一个宏define,可以通过输入参数的形式验证需要check的时钟频率,大大提升了验证效率和准确率&…...
企业数字化转型是否已由信息化+自动化向智能化迈进?
DeepSeek引发的AI热潮迅速蔓延到了各个行业,目前接入DeepSeek的企业,涵盖了科技互联网、云服务、电信、金融、能源、汽车、手机等热门领域,甚至全国各地政府机构也纷纷引入。 在 DeepSeek 等国产 AI 技术的推动下,众多企业已经敏锐…...
PT5F2307触摸A/D型8-Bit MCU
1. 产品概述 ● PT5F2307是一款51内核的触控A/D型8位MCU,内置16K*8bit FLASH、内部256*8bit SRAM、外部512*8bit SRAM、触控检测、12位高精度ADC、RTC、PWM等功能,抗干扰能力强,适用于滑条遥控器、智能门锁、消费类电子产品等电子应用领域。 …...
嵌入式STM32学习——串口USART 2.0(printf重定义及串口发送)
printf重定义: C语言里面的printf函数默认输出设备是显示器,如果要实现printf函数输出正在串口或者LCD显示屏上,必须要重定义标准库函数里调用的与输出设备相关的函数,比如printf输出到串口,需要将fputc里面的输出指向…...
进程信号(上)【Linux操作系统】
文章目录 进程信号信号引入进程要如何识别信号?进程接收到信号的时候,不一定马上处理信号进程处理信号的情况 信号相关概念信号产生键盘产生通过指令向进程发送信号系统调用向进程发送信号软件条件异常错误 操作系统如何知道进程出现了异常错误ÿ…...
全方位详解微服务架构中的Service Mesh(服务网格)
一、引言 随着微服务架构的广泛应用,微服务之间的通信管理、流量控制、安全保障等问题变得日益复杂。服务网格(Service Mesh)作为一种新兴的技术,为解决这些问题提供了有效的方案。它将服务间通信的管理从微服务代码中分离出来&a…...
bi工具是什么意思?bi工具的主要功能有哪些?
目录 一、BI 工具是什么意思? 1. 基本概念 2. 发展历程 编辑二、BI 工具的主要功能 1. 数据连接与整合 2. 数据存储与管理 3. 数据分析与挖掘 4. 可视化呈现 5. 报表生成与分享 6. 实时监控与预警 三、BI 工具的应用场景 1. 销售与营销 2. 财务与会计…...
cocos creator使用jenkins打包微信小游戏,自动上传资源到cdn,windows版运行jenkins
cocos 版本2.4.11 在windows上jenkins的具体配置和部署,可参考上一篇文章cocos creator使用jenkins打包流程,打包webmobile_jenkins打包,发布,部署cocoscreator-CSDN博客 特别注意,windows上运行jenkins需要关闭windows自己的jenkins服务&a…...
PaddleOCR的Pytorch推理模块
概述 在项目中,遇到文字识别OCR的使用场景。 然而,目前效果最好的PaddleOCR只能用百度的PaddlePaddle框架运行。 常见项目中,往往使用更普遍的Pytorch框架,单独安装PaddlePaddle不仅会让项目过于臃肿,而且可能存在冲…...
操作系统期末复习(一)
一、选择 1.从用户的观点看,操作系统是() A.用户与计算机之间的接口 B.控制和管理计算机资源的软件 C.合理地组织计算机工作流程的软件 由若干层次的程序按一定的结构组成的有机体 答案:A 2.操作系统在计算机系统中位于&#x…...
今日行情明日机会——20250521
上证指数缩量收阳线,个股跌多涨少,整体处于日线上涨末端,注意风险。 深证指数,出现60分钟的顶分型,需要观察方向的选择。 2025年5月21日涨停股主要行业方向分析 并购重组 涨停家数:9家。 代表标的&am…...
传统Spring MVC + RESTful 与 Vue3 结合 JWT Token 验证的示例
以下是针对非Spring Boot项目(传统Spring MVC)的示例 一、项目结构 src/ ├── main/ │ ├── java/ │ │ └── com/ │ │ └── example/ │ │ ├── config/ # 配置类目录 │ │ │ ├─…...
使用Redis的Bitmap实现了签到功能
思路分析 我们可以把 年和月 作为BitMap的key,然后保存到一个BitMap中,每次签到就到对应的位上把数字从0 变为1,只要是1,就代表是这一天签到了,反之咋没有签到。 关键问题 问题一: 什么叫做连续签到天数…...
Unity-编辑器扩展-其二
今天我们来基于之前提到的编辑器扩展的内容来做一些有实际用处的内容: 检查丢失的组件 首先是一个比较实际的内容:当我们在做项目时,经常会涉及到预设体在不同项目或者不同文件路径下的转移,这个时候很容易在某个具体的prefab对…...
项目中Warmup耗时高该如何操作处理
1)项目中Warmup耗时高该如何操作处理 2)如何在卸载资源后Untracked和Other的内存都回收 3)总Triangles的值是否包含了通过GPU Instancing画的三角形 4)有没有用Lua来修复虚幻引擎中对C代码进行插桩Hook的方案 这是第432篇UWA技术知…...
php://filter的trick
php://filter流最常见的用法就是文件包含读取文件,但是它不止可以用来读取文件,还可以和RCE,XXE,反序列化等进行组合利用 filter协议介绍 php://filter是php独有的一种协议,它是一种过滤器,可以作为一个中…...
STM32 I2C硬件读写
一、I2C外设简介 STM32内部集成了硬件I2C收发电路,可以由硬件自动执行时钟生成、起始终止条件生成、应答位收发、数据收发等功能,减轻CPU的负担支持多主机模型(固定多主机、可变多主机)支持7位/10位地址模式支持不同的通讯速度&a…...
Qt+线段拖曳示例代码
Qt线段拖曳示例代码,功能见下图。 代码如下: canvaswidget.h #ifndef CANVASWIDGET_H #define CANVASWIDGET_H#include <QWidget> #include <QPainter> #include <QMouseEvent> #include <QVector>class CanvasWidget : publi…...
计算机网络相关面试题
一、HTTP1.1和HTTP2的区别 HTTP/1(主要指 HTTP/1.1)和 HTTP/2 是 Web 协议发展中的两个重要版本,二者在性能、协议机制和功能特性上有显著差异。以下从多个维度对比分析,并结合具体案例说明: 一、连接与请求处理方式 1…...
docker中部署Universal Media Server (UMS)
Universal Media Server (UMS) 本身主要是作为桌面服务程序开发的(主要面向 Java GUI DLNA 播放),但确实可以通过 Docker 进行部署。虽然官方没有提供 Docker 镜像,但社区有一些可用的方式可以在 Docker 中运行它。 下面是一个可…...
WordPress Elementor零基础教程
一、WordPress Elementor 是什么?—— 可视化网站搭建 “积木工具箱” 基础定义 Elementor 是 WordPress 的一款可视化页面构建插件,就如同网站搭建领域的 “PPT 编辑器”。它能让你无需编写代码,仅通过拖放模块(像图片、文本、…...
鸿蒙UI开发——实现一个上拉抽屉效果
1、概 述 在项目开发中,我们可能会遇到临时交互的场景(即:弹出一个临时交互框,交互完毕后继续用户的主流程),效果如下: 在ArkUI中,此类弹出窗被称为“半模态页面”,ArkU…...
详细介绍Qwen3技术报告中提到的模型架构技术
详细介绍Qwen3技术报告中提到的一些主流模型架构技术,并为核心流程配上相关的LaTeX公式。 这些技术都是当前大型语言模型(LLM)领域为了提升模型性能、训练效率、推理速度或稳定性而采用的关键组件。 1. Grouped Query Attention (GQA) - 分组…...
docker面试题(3)
如何临时退出一个正在交互的容器的终端,而不终止它 按ctrlp,后按ctrlq ,如果按ctrlc会使容器内的应用进程终止,进而会使容器终止 很多应用容器都默认是后台运行的,怎么查看它们输出的日志信息 使用docker logs &#…...
2025年二级等保实施全攻略:传统架构与云等保方案深度解析
2025年,随着《网络安全法》的深化落实和等保2.0标准的全面推行,二级等保已成为中小企业及非核心业务系统的合规基线。如何在高效满足监管要求的同时,兼顾成本与安全效能?本文将结合最新政策与实战经验,从传统架构到云等…...
技术点对比
数据库 数据库程序在线访问与ORM访问的对比 数据库程序在线ORM访问优点性能好性能差可以处理复杂sql缺点 性能: 复杂sql支持: 开发成本: 架构风格 管道-过滤器风格与数据仓库风格对比 管道-过滤器风格数据仓储风格备注交互方式顺序结构…...
自监督学习与监督学习
🔍 一、监督学习 vs 自监督学习:核心区别 维度监督学习(Supervised Learning)自监督学习(Self-Supervised Learning)是否需要人工标注的标签✅ 需要,如分类标签、边界框等❌ 不需要,…...
Java操作数据库,JDBC
package myjdbc; import com.mysql.jdbc.Driver; import java.sql.Connection; import java.sql.SQLException; import java.sql.Statement; import java.util.Properties; /*** 练习JDBC,完成一些简单的操作。*/ public class jdbc01 {public static void main(Str…...
UML 活动图 (Activity Diagram) 使用案例
UML 活动图使用案例 UML 活动图 (Activity Diagram) 使用案例活动图的主要元素典型使用案例1. 用户登录流程2. 在线购物流程3. 订单处理系统4. 文件审批流程 活动图的优势何时使用活动图 UML 活动图 (Activity Diagram) 使用案例 活动图是UML中用于描述业务流程或系统工作流程…...
回溯法求解N皇后问题
目录 前言 一、回溯法是什么? 二、N皇后问题描述 分析解题思路 三、算法设计 1、递归法 2、非递归法 总结 前言 本文将从递归形式和非递归形式两种方法来介绍求解N皇后问题的回溯法,后续也会更新更多有关算法分析这方面的问题欢迎大家关注~🤩…...