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

【python基础知识】Day30 模块和库的导入

学习python = 学习python基础语法 + 处理任务需要用到的库

一、导入官方库的三种手段

1 标准导入:导入整个库

# 方式1:导入整个模块
import math# 导入库后,输出测试
print("方式1:使用 import math")
print(f"圆周率π的值:{math.pi}")
print(f"2的平方根:{math.sqrt(2)}\n")

2.从库中导入特定项

from math import pi, sqrtprint("方式2:使用 from math import pi, sqrt")
print(f"圆周率π的值:{pi}")
print(f"2的平方根:{sqrt(2)}\n")

3. 非标准导入

from math import *# 输出测试
print(f"圆周率π的值:{pi}")
print(f"2的平方根:{sqrt(2)}")

二、导入自定义库/模块的方式

1.模块,库的定义

模块(Module)

本质:以  .py  结尾的单个文件,包含Python代码(函数、类、变量等)。

作用:将代码拆分到不同文件中,避免代码冗余,方便复用和维护。

包(Package)——在python里,包就是库

本质:有层次的文件目录结构(即文件夹),用于组织多个模块和子包。

核心特征:包的根目录下必须包含一个 __init__.py 文件(可以为空),用于标识该目录是一个包。

2.使用方法

IDE(如 VSCode 或 PyCharm)通常会将你打开的项目文件夹设为“根目录”(或者说,运行时的工作目录)。Python 在导入模块时,会从这个根目录开始查找。

若编写一个计算圆面积的代码并保存为 circle.py,这个文件就是一个模块。

使用时通过 import circle 导入模块,调用其中的函数,如 circle.calculate_area(5)

场景1: `main.py` 和 `circle.py` 都在同一目录

# main.py
from circle import calculate_area
# 或者: import circle (然后用 circle.calculate_area)radius = 5
area = calculate_area(radius)
print(f"半径为 {radius} 的圆,面积是: {area}")

场景2: `main.py` 和 `circle.py` 都在根目录的子目录 `model/` 下

# model/main.py
from circle import calculate_area
# 或者: import circle (然后用 circle.calculate_area)radius = 5
area = calculate_area(radius)
print(f"半径为 {radius} 的圆,面积是: {area}")

场景3: `main.py` 在根目录,`circle.py` 在子目录 `model/` 下

# main.py
from model.circle import calculate_area
# 或者: from model import circle (然后用 circle.calculate_area,因为此时你是导入了整个模块)radius = 5
area = calculate_area(radius)
print(f"半径为 {radius} 的圆,面积是: {area}")

导入库/模块的核心逻辑:找到根目录(python解释器的目录和终端的目录不一致)

http://www.xdnf.cn/news/7225.html

相关文章:

  • 数据结构实验10.1:内部排序的基本运算
  • 【android bluetooth 协议分析 01】【HCI 层介绍 9】【ReadLocalSupportedCommands命令介绍】
  • 没有保安工作经验,如何备考初级保安员证的实操考试?
  • 数据分析入门指南:从历史到实践
  • 物联网之使用Vertx实现HTTP/WebSocket最佳实践
  • 精益数据分析(69/126):最小可行化产品(MVP)的设计、验证与数据驱动迭代
  • Android framework 问题记录
  • Ubuntu开机自启服务
  • 【数据仓库面试题合集③】实时数仓建模思路与实践详解
  • InternLM 论文分类微调实践(XTuner 版)
  • Java设计模式之外观模式:从入门到精通(保姆级教程)
  • 基于Elasticsearch的搜索引擎简介
  • 【Android】一键创建Keystore + Keystore 参数说明 + 查询SHA256(JDK Keytool Keystore)
  • 【神经网络与深度学习】GAN 生成对抗训练模型在实际训练中很容易判别器收敛,生成器发散
  • 【物联网】 ubantu20.04 搭建L2TP服务器
  • 电脑安装程序报错写入注册表失败
  • 基于51单片机教室红外计数灯光控制—可蓝牙控制
  • 为什么wifi有信号却连接不上?
  • Oracle 数据库的默认隔离级别
  • 探索C++面向对象:从抽象到实体的元规则(上篇)
  • docker介绍与常用命令汇总
  • C语法备注01
  • 项目记录:「五秒反应挑战」小游戏的开发全过程
  • 「NameCraft · 幻想命名器」开发记:我和 CodeBuddy 的一次奇幻共创之旅
  • MySQL之函数
  • 洛谷U536262 井底之“鸡”
  • 初识 Redis
  • 云计算简介:从“水电”到“数字引擎”的技术革命
  • LeetCode 219.存在重复元素 II
  • OpenCV CUDA 模块中的矩阵算术运算-----在频域(复数频谱)中执行逐元素乘法并缩放的函数mulAndScaleSpectrums()