知识点回顾:

  1. 导入官方库的三种手段
  2. 导入自定义库/模块的方式
  3. 导入库/模块的核心逻辑:找到根目录(python解释器的目录和终端的目录不一致)

作业:自己新建几个不同路径文件尝试下如何导入

一、导入官方库
我们复盘下学习python的逻辑,所谓学习python就是学习python常见的基础语法+学习你所处理任务需要用到的第三方库

所以你用到什么学什么库即可。学习python本身就是个伪命题,就像你说学习科目一样,你没说清晰你学习的具体科目是什么,也没说学这个科目的哪些章节,毕竟每个科目都很大-----要有以终为始的思想。

所以我们这个训练营,正确的说法是:学习借助pythob掌握深度学习和机器学习所必备的基础知识和相关工具。

标准导入:导入整个库
这是最基本也是最常见的导入方式,直接使用import语句。

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

从库中导入特定项
当使用from语法从库中导入特定的函数或类时,这些函数或类就可以在您的代码中直接使用,不需要添加模块名作为前缀。因为在导入时没有包括模块的完整路径,前面也不能加上库名。

# 方式2:导入特定的函数或变量
from math import pi, sqrtprint("方式2:使用 from math import pi, sqrt")
print(f"圆周率π的值:{pi}")
print(f"2的平方根:{sqrt(2)}\n")

类似的写法,如sklearn库很大,直接导入sklearn库会占用电脑大量内存,所以一般只导入你需要的库,

如: from sklearn.model_selection import train_test_split

非标准导入:导入整个库
如下,●这将导入math模块中定义的所有公开函数和变量。 ●和上述from同理,直接调用sin()、cos()等,而无需math.前缀。

虽然 import math和 from math import *看起来都是导入了 math 模块,但它们在导入方式、作用域处理以及对命名空间的影响上有重要的区别。

命名空间的污染 import math:

这种方法会将整个 math 模块导入到命名空间中,但是需要使用 math. 前缀来访问模块内的函数或变量。这种方式保持了命名空间的整洁,因为所有的 math 函数和变量都包含在 math 这个模块对象中。 from math import *:这种方法将 math 模块中的所有公开的函数和变量导入到当前的命名空间中,可以直接使用这些函数和变量而无需 math. 前缀。这种方式可能会导致命名空间污染,特别是当有多个模块都被这样导入时,很容易发生命名冲突。

明确性和可维护性 import math:

明确指出了函数和变量来源于 math 模块,这对代码的可读性和维护性都是有益的。其他阅读你代码的人可以清楚地看到每个函数的来源,这对大型项目和团队合作尤为重要。 

from math import *:虽然代码看起来更简洁,但这种方法减少了代码的明确性。如果没有足够的上下文,很难判断一个特定的函数是来自 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))。

# circle.py
import mathdef calculate_area(radius):return math.pi * radius ** 2

IDE(如 VSCode 或 PyCharm)通常会将你打开的项目文件夹设为“根目录”(或者说,运行时的工作目录)。Python 在导入模块时,会从这个根目录(以及其他一些标准位置和脚本所在的目录)开始查找。

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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【GitHub Pages】部署指南

vue项目 编辑你的 vite.config.ts 文件,加上 base 路径,设置为你的 GitHub 仓库名 import { defineConfig } from vite import vue from vitejs/plugin-vue// 假设你的仓库是 https://github.com/your-username/my-vue-app export default defineConfi…

远程控制技术全面解析:找到适合你的最佳方案

背景:远程控制为何成为企业核心需求? 随着企业数字化转型的推进,远程控制技术已成为异地办公和运维的关键工具。无论是跨国企业需要高效管理全球设备,还是中小型企业追求经济高效的解决方案,选择合适的远程控制技术&a…

触觉智能RK3506星闪开发板规格书 型号IDO-EVB3506-V1

产品概述 触觉智能RK3506星闪开发板,型号IDO-EVB3506-V1采用 Rockchip RK3506(三核 Cortex-A7单核Cortex-M0, 主频最高1.5GHz)设计的评估开发板,专为家电显控、显示HMI、手持终端、工业IOT网关、工业控制、PLC等领域而设计。内置…

九级融智台阶与五大要素协同的量子化解析

九级融智台阶与五大要素协同的量子化解析 摘要:本文构建了一个量子力学框架下的九级融智模型,将企业创新过程映射为量子能级跃迁。研究发现五大要素协同态决定系统跃迁概率(P∣⟨Ψ_m∣H_协同∣Ψ_n⟩∣^2),当要素协同…

Kotlin学习34-data数据类1

定义如下:与普通类对比学习 //普通类 class NormalClass(val name: String, val age: Int, val sex: Char) //数据类 data class DataClass(val name: String, val age: Int, val sex: Char)对应找到java反编译的代码路径:Tool-->Kotlin-->Show K…

博图SCL基础知识-表达式及赋值运算

S7-1200 从 V2.2 版本开始支持 SCL 语言。 语言元素 SCL 除了包含 PLC 的典型元素(例如,输入、输出、定时器或存储器位)外,还包含高级编程语言表达式、赋值运算和运算符。 程序控制语句 SCL 提供了简便的指令进行程序控制。例…

海思3519V200ARM Linux 下移植 Qt5.8.0

一、移植背景及意义 海思3519V200是一款基于ARM架构的嵌入式芯片,广泛应用于智能安防、工业控制等领域。在这些应用场景中,对设备的图形用户界面(GUI)有着越来越高的要求。Qt5.8.0作为一个功能强大、跨平台的GUI开发框架,能够帮助开发者快速开发出美观、高效的用户界面。…

msql的乐观锁和幂等性问题解决方案

目录 1、介绍 2、乐观锁 2.1、核心思想 2.2、实现方式 1. 使用 version 字段(推荐) 2. 使用 timestamp 字段 2.3、如何处理冲突 2.4、乐观锁局限性 3、幂等性 3.1、什么是幂等性 3.2、乐观锁与幂等性的关系 1. 乐观锁如何辅助幂等性&#xf…

成都鼎讯--通信信号模拟设备​

在现代电磁通信领域,精准模拟复杂多变的信号环境,是提升通信装备性能与人员作战能力的核心命题。成都鼎讯以技术创新为驱动,凭借深厚的研发实力,重磅推出通信信号模拟设备,以前所未有的强大功能与卓越性能,…

C# Windows Forms应用程序-003

目录 项目结构 命名空间和类定义 主要控件 GroupBox 控件 Label 控件 TextBox 控件 Button 控件 OpenFileDialog 控件 方法说明 构造函数 Form1() Dispose(bool disposing) Main() InitializeComponent() button1_Click(object sender, System.EventArgs e) but…

【C/C++】死锁的四大条件与预防策略详解

文章目录 死锁的四大条件与预防策略详解一、死锁的产生条件(四个必要条件)二、代码示例三、死锁的预防手段(以 C/C 为例)1. 破坏“循环等待” —— 统一加锁顺序(推荐)2. 使用 std::lock 一次性加多个锁3. …

Rust编程环境安装

文章目录 Rust编程环境安装一、安装准备二、安装步骤对于Linux/macOS用户对于Windows用户 三、验证安装四、环境配置检查五、工具链管理六、附加功能七、常见问题处理八、编辑器支持九、其他 Rust编程环境安装 一、安装准备 1. 支持系统:Windows/Linux/macOS 2. 所…

OpenHarmony平台驱动使用(五),HDMI

OpenHarmony平台驱动使用(五) HDMI 概述 功能简介 HDMI(High Definition Multimedia Interface),即高清多媒体接口,主要用于DVD、机顶盒等音视频Source到TV、显示器等Sink设备的传输。 HDMI以主从方式工…

【Git】Commit Hash vs Change-Id

文章目录 1、Commit 号2、Change-Id 号3、区别与联系4、实际场景示例5、为什么需要两者?6、总结附录——Gerrit 在 Git 和代码审查工具(如 Gerrit)中,Commit 号(Commit Hash) 和 Change-Id 号 是两个不同的…

leetcode hot100刷题日记——21.不同路径

和20题一样的思路link 题解&#xff1a; class Solution { public:int dfs(int i,int j,vector<vector<int>>&memo){//超过了边界&#xff0c;return 0if(i<0||j<0){return 0;}//从&#xff08;0&#xff0c;0&#xff09;到&#xff08;0&#xff0c;0…

day2 MySQL表数据操作

一&#xff1a;数据操作 注&#xff1a;在编写MySQL代码时可以不用区分大小写 1.查看表结构 desc 表名; -- 查看表中的字段类型&#xff0c;长度&#xff0c;约束。 2.字段的增加 AFTER table 表名 add 字段名 数据类型; -- 默认末尾添加 after table 表名 add 字段名 …

GitAny - 無需登入的 GitHub 最新倉庫檢索工具

地址&#xff1a;https://github.com/MartinxMax/gitany GitAny - 無需登入的 GitHub 專案搜尋工具 GitAny 是一款基於 Python 的工具&#xff0c;允許你在無需登入的情況下搜尋當天最新的 GitHub 專案。它支援模糊搜尋、條件篩選以及倉庫資料的視覺化分析。 安裝依賴 $ pip…

格恩朗金属管浮子流量计 高精度测量的不二之选​

在流量测量的复杂领域&#xff0c;精度就是生命线&#xff0c;直接关乎生产的稳定性、产品的质量以及资源的合理利用。大连格恩朗品牌的金属管浮子流量计&#xff0c;凭借其卓越的精度表现&#xff0c;成为各行业在流量测量时的最佳之选。​ 格恩朗金属管浮子流量计运用经典的可…

【R语言编程绘图-箱线图】

基本箱线图绘制 使用ggplot2绘制箱线图的核心函数是geom_boxplot()。以下是一个基础示例&#xff0c;展示如何用iris数据集绘制不同物种&#xff08;Species&#xff09;的萼片长度&#xff08;Sepal.Length&#xff09;分布&#xff1a; library(ggplot2) ggplot(iris, aes(…

深度学习能取代机器学习吗?

在人工智能领域&#xff0c;“机器学习”和“深度学习”这两个词经常被混为一谈。很多新手甚至以为只要跟 AI 有关的任务&#xff0c;都该用深度学习。但其实&#xff0c;它们并不是谁强谁弱的关系&#xff0c;而是适合不同场景的工具。 这篇文章就来帮你理清楚&#xff1a; 机…