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

Python 从入门到实战25(模块)

        我们的目标是:通过这一套资料学习下来,通过熟练掌握python基础,然后结合经典实例、实践相结合,使我们完全掌握python,并做到独立完成项目开发的能力。

上篇文章我们讨论了类继承的相关知识。今天我们将学习一下模块的相关基础知识。

1、模块概述

        python 提供了强大的模块支持,有标准库中包含的大量的模块,还有第三方模块,以及自定义模块。模块的英文module。打个比方,一个函数相当于一个积木,而一个模块相当于一盒主题的积木,通过它可以拼出某一个主题的东西。这样我们可以认为一个模块中包含多个函数。

         在python中,我们新建一个.py文件就被称为一个模块。

如下图所示,我们编写了my_function.py文件,里面包含很多个函数。

通常情况下,我们把能够实现某一特定功能的代码作为一个模块放置在一个文件中,以方便被其它程序或脚本导入并使用。同时要注意模块的名称要避免重复。

上图中所示就是自定义模块。

2、自定义模块

自定义模块有两个作用:一个是规范代码,让代码更容易阅读;

另外,方便其它程序可使用已经编好的代码,以提高开发效率。自定义模块需要先创建模块,然后再导入使用模块。

1)创建模块

可以在项目中新建python文件即可创建。如下图所示

像下图所示,我们创建的my_function.py文件

例如:编写了函数,

#定义一个过滤敏感广告次的函数,对于最好,最优秀,遥遥领先这种广告次替换展示
def replace_chars(string):
    pattern =  r'(最好)|(最优秀)|(遥遥领先)'
    new_string = re.sub(pattern,"@^^@",string)
    print(new_string)

2)通过import导入模块使用

我们创建了my_function.py文件,并且编写了函数,

导入模块的语法:import  modulename  [as alias]

modulename  -----指要导入的模块名称,多个模块的话使用,隔开

as alias       -----选填,给模块起一个别名

举个例子:

我们在main.py中使用my_function.py文件中的函数,

import my_function

advertisement_huawei= "华为华为,科技遥遥领先,是宇宙中最优秀的手机!"
my_function.replace_chars(advertisement_huawei)#注意要添加模块

这样就可以使用my_function.py中的函数了。注意调用函数需要加上模块名称

3)from  …   import 导入函数

导入语法:from   modulename  import member

member ----可以是要导入的变量、函数、类等

如上面的例子可以改下:

from my_function import replace_chars

advertisement_huawei= "华为华为,科技遥遥领先,是宇宙中最优秀的手机!"
replace_chars(advertisement_huawei)

此时,调用函数不需要前面加模块名称。

输出结果和上面的一致。

3、导入标准模块

导入标准模块,像math,我们可以使用其中的pi计算圆的面积

CTRL + 点击math 可以查看对应math模块

import math  #导入模块math

#计算圆的面积
r = float(input("请输入圆的半径"))
area = math.pi * r * r
print("圆的面积为:{:.2f}".format(area))

参考输出:

4、模块搜索目录

使用import 导入模块时,会按照以下顺序去查找模块:

1)当前目录,即执行python脚本文件所在的目录进行查找;

2)在PYTHONPATH(环境变量)下的每个目录中进行查找

3)在python 的默认安装目录中查找

以上位置保存在标准模块sys的sys.path 变量中。下面查看以下目录;

import sys

print(sys.path)

查看输出:

['D:\\dewi\\project2024\\myListPractice\\pythonProject1', 'D:\\dewi\\project2024\\myListPractice\\pythonProject1', 'C:\\Users\\dewi\\python311.zip', 'C:\\Users\\dewi\\DLLs', 'C:\\Users\\dewi\\Lib', 'C:\\Users\\dewi', 'D:\\dewi\\project2024\\myListPractice\\pythonProject1\\.venv', 'D:\\dewi\\project2024\\myListPractice\\pythonProject1\\.venv\\Lib\\site-packages']

若是我们要导入的模块不在上面的路径目录,可以在PYTHONPATH变量中添加(这个网上很容易搜索到,就不展开讲)。

另外,我们也可以临时增加:

import list_learning  #开始说找不到对应的模块

sys.path.append("D:\\dewi\\demo")
print(sys.path)

查看是不是在sys.path :

这种方法添加的目录只是在执行当前文件的窗口中有效,窗口关闭后即失效。

当然,最简单的是将我们的模块放到sys.path 其中一个目录下。

今天先写学习到这里了,每天进步一点点。明天也要加油啊!

相关文章:

Python 从入门到实战25(模块)

我们的目标是:通过这一套资料学习下来,通过熟练掌握python基础,然后结合经典实例、实践相结合,使我们完全掌握python,并做到独立完成项目开发的能力。 上篇文章我们讨论了类继承的相关知识。今天我们将学习一下模块的…...

Leetcode面试经典150题-172.阶乘后的零

给定一个整数 n ,返回 n! 结果中尾随零的数量。 提示 n! n * (n - 1) * (n - 2) * ... * 3 * 2 * 1 示例 1: 输入:n 3 输出:0 解释:3! 6 ,不含尾随 0示例 2: 输入:n 5 输出&a…...

【机器学习】揭秘GBDT:梯度提升决策树

目录 🍔 提升树 🍔 梯度提升树 🍔 举例介绍 3.1 初始化弱学习器(CART树) 3.2 构建第一个弱学习器(CART树) 3.3 构建第二个弱学习器(CART树) 3.4 构建第三个弱学习…...

Android Studio 2024 安装、项目创建、加速、优化

文章目录 Android Studio安装Android Studio项目创建Android Studio加速修改GRADLE_USER_HOME位置减少C盘占用空间GRADLE加速 修改模拟器位置减少C盘占用空间参考资料 Android Studio安装 下载android studio download android-studio-2024.1.2.12-windows.exe 或者 android-…...

JSP(Java Server Pages)基础使用

首先在web文件夹中新建一个jsp/jspx文件&#xff0c;这个文件就是jsp文件 <%--Created by IntelliJ IDEA.User: ***Date: 2024/9/23Time: 18:43To change this template use File | Settings | File Templates. --%> <% page contentType"text/html;charsetUTF-…...

数据结构 - 概述及其术语

经过上一章节《数据结构与算法之间有何关系&#xff1f;》的阐述&#xff0c;相信大家对数据结构多少有了点了解&#xff0c;今天我们将进入数据结构的正式学习中。 在计算机科学中&#xff0c;数据结构是一种数据管理、组织和存储的格式。它是相互之间存在一种或多种特定关系的…...

UE5——在线子系统

Unreal Engine 5 (UE5) 的在线子系统&#xff08;Online Subsystem&#xff09;实现多人在线游戏的原理涉及到网络编程和分布式系统设计中的多个方面。以下是该系统工作的一些核心概念和技术&#xff1a; 1. 客户端-服务器架构: - 大多数现代多人在线游戏采用客户端-服务器模型…...

9.23-部署项目

部署项目 一、先部署mariadb [rootk8s-master ~]# mkdir aaa [rootk8s-master ~]# cd aaa/ [rootk8s-master aaa]# # 先部署mariadb [rootk8s-master aaa]# # configmap [rootk8s-master aaa]# vim mariadb-configmap.yaml apiVersion: v1 kind: ConfigMap metadata:name: ma…...

非标独立设计选型--二十六--电磁阀的选型件算

电磁阀&#xff1a;电磁控制---自动化的关键 PLC ---- 继电器----电磁阀----调速阀----气缸 供气源--- 【电磁阀主要负责&#xff1a;换向&#xff0c;实现气缸的动作变化】 电磁阀有哪些参数是会影响到使用的&#xff1f; …...

flume系列之:出现数据堆积时临时增大sink端消费能力

flume系列之:出现数据堆积时临时增大sink端消费能力 一、背景二、增大sink端消费能力flume系列之:flume生产环境sink重要参数理解 一、背景 flume出现数据堆积,消费的数据持续堆积在channel中参数org_apache_flume_channel_channel1_channelfillpercentage的值大于0,并且持…...

SQL Server全方位指南:从入门到高级详解

本文将分为三大部分&#xff0c;逐步深入SQL Server的基础知识、进阶技巧和高级特性&#xff0c;旨在帮助从初学者到经验丰富的开发人员深入理解和使用SQL Server。 一、入门篇 1.1 什么是SQL Server&#xff1f; SQL Server 是由微软开发的关系型数据库管理系统&#xff08…...

【JavaSE】IO模型

IO&#xff0c;英文全称是 Input/Output&#xff0c;翻译过来就是输入/输出。我们听得挺多&#xff0c;就是磁盘 IO&#xff0c;网络 IO 等。IO 即输入/输出&#xff0c;到底谁是输入&#xff1f;谁是输出&#xff1f;IO 如果脱离了主体&#xff0c;会让人疑惑。 计算机角度的…...

手术缝合线合格品检测项目众多 线径又是其重要一环!

手术缝合线的合格与否&#xff0c;关系着使用及恢复情况&#xff0c;其品质的优劣非常重要&#xff0c;而要想得到合格的手术缝合线&#xff0c;则需要多种类型的仪器进行检测。其中线径就是重要一环&#xff0c;下面来看看线径检测仪&#xff0c;并简单介绍一下其他所需检测信…...

STM32 单片机最小系统全解析

STM32 单片机最小系统全解析 本文详细介绍了 STM32 单片机最小系统&#xff0c;包括其各个组成部分及设计要点与注意事项。STM32 最小系统在嵌入式开发中至关重要&#xff0c;由电源、时钟、复位、调试接口和启动电路等组成。 在电源电路方面&#xff0c;采用 3.3V 直流电源供…...

深度解析ElasticSearch:构建高效搜索与分析的基石原创

引言 在数据爆炸的时代&#xff0c;如何快速、准确地从海量数据中检索出有价值的信息成为了企业面临的重要挑战。ElasticSearch&#xff0c;作为一款基于Lucene的开源分布式搜索和分析引擎&#xff0c;凭借其强大的实时搜索、分析和扩展能力&#xff0c;成为了众多企业的首选。…...

【Python常用模块】_PyMySQL模块详解

课 程 推 荐我 的 个 人 主 页:👉👉 失心疯的个人主页 👈👈入 门 教 程 推 荐 :👉👉 Python零基础入门教程合集 👈👈虚 拟 环 境 搭 建 :👉👉 Python项目虚拟环境(超详细讲解) 👈👈PyQt5 系 列 教 程:👉👉 Python GUI(PyQt5)教程合集 👈👈…...

【算法思想·二叉树】最近公共祖先问题

本文参考labuladong算法笔记[拓展&#xff1a;最近公共祖先系列解题框架 | labuladong 的算法笔记] 0、引言 如果说笔试的时候经常遇到各种动归回溯这类稍有难度的题目&#xff0c;那么面试会倾向于一些比较经典的问题&#xff0c;难度不算大&#xff0c;而且也比较实用。 本…...

如何合并pdf文件,四款软件,三步搞定!

在数字化办公的浪潮中&#xff0c;PDF文档因其跨平台兼容性和安全性&#xff0c;成为了我们日常工作中不可或缺的一部分。然而&#xff0c;面对多个PDF文件需要整合成一个文件时&#xff0c;不少小伙伴可能会感到头疼。别担心&#xff0c;今天我们就来揭秘四款高效PDF合并软件&…...

仪表放大器AD620

AD623 是一款低功耗、高精度的仪表放大器&#xff0c;而不是轨到轨运算放大器。它的输入电压范围并不覆盖整个电源电压&#xff08;轨到轨&#xff09;&#xff0c;但在单电源供电下可以处理接近地电位的输入信号。 AD620 和 AD623 都是仪表放大器&#xff0c;但它们在一些关键…...

【Qt网络编程】Tcp多线程并发服务器和客户端通信

目录 一、编写思路 1、服务器 &#xff08;1&#xff09;总体思路widget.c&#xff08;主线程&#xff09; &#xff08;2&#xff09;详细流程widget.c&#xff08;主线程&#xff09; &#xff08;1&#xff09;总体思路chat_thread.c&#xff08;处理聊天逻辑线程&…...

告别抓包焦虑:Win10下搞定8812BU网卡驱动与Omnipeek联动的保姆级避坑指南

告别抓包焦虑&#xff1a;Win10下搞定8812BU网卡驱动与Omnipeek联动的保姆级避坑指南 在无线网络分析领域&#xff0c;8812BU芯片的无线网卡因其出色的抓包能力备受青睐&#xff0c;但许多用户在Windows 10环境下配置驱动与Omnipeek抓包工具时&#xff0c;往往会陷入驱动安装失…...

为内部ai工具平台集成taotoken实现多模型灵活切换的方案

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 为内部AI工具平台集成Taotoken实现多模型灵活切换的方案 在企业内部开发AI工具平台时&#xff0c;一个常见的挑战是如何为不同的业…...

Taotoken API密钥管理与访问控制功能初体验

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 Taotoken API密钥管理与访问控制功能初体验 1. 引言 在将大模型能力集成到实际应用或团队协作流程中时&#xff0c;API密钥的管理…...

国产芯赋能低功耗人体感应小夜灯方案(YL4056H 充电管理)

一、方案概述人体感应小夜灯作为智能家居入门级产品&#xff0c;核心需求是低功耗、长续航、充电安全、光控 人体感应双触发。本方案基于远乐 YL4056H 高耐压线性锂电充电芯片&#xff0c;搭配 PIR 红外感应模块 光敏电阻&#xff0c;实现 “白天休眠、夜间人来灯亮、人走延时…...

实在Agent架构实战:彻底化解工厂员工入转调离流程繁琐与HR行政超负荷困局

摘要&#xff1a; 站在2026年这个数字化深水区的节点&#xff0c;制造企业正面临前所未有的管理韧性挑战。工厂员工入转调离流程繁琐已不再仅仅是行政效率问题&#xff0c;而是演变为制约企业规模化扩张与人力成本控制的战略瓶颈。传统数字化手段往往受困于系统烟囱、老旧OA/ER…...

2026年数字人拍摄新方式:一条视频能省多少时间

2026年数字人拍摄新方式&#xff1a;一条视频能省多少时间 【导语】 做视频最耗时间的是什么&#xff1f;不是拍摄那几分钟&#xff0c;而是前期的准备工作。但现在有一种新方式&#xff0c;可以让你完全不用拍摄真人&#xff0c;一条视频从准备到成片&#xff0c;最快只要7分钟…...

RISC-V开放架构如何重塑垂直半导体商业模式

1. 从边缘到中心&#xff1a;RISC-V的崛起与半导体模式的裂变最近和几位在芯片设计公司工作的老朋友聊天&#xff0c;话题总绕不开RISC-V。十年前&#xff0c;当我们还在讨论ARM和x86谁主沉浮时&#xff0c;RISC-V还只是学术界论文里的一个概念。如今&#xff0c;它已经成了行业…...

嵌入式MCU流数据统计:Welford在线算法与定点数优化实践

1. 项目概述与核心挑战在嵌入式开发领域&#xff0c;尤其是面对那些主频几十兆赫兹、内存仅以KB计的低算力MCU时&#xff0c;我们常常需要处理来自传感器的连续数据流。计算这些数据的均值和方差&#xff0c;听起来像是统计学入门课的第一章&#xff0c;简单到让人几乎要忽略其…...

2026研发效能工具全景评测:Gitee Insight在DevSecOps赛道的差异化分析

核心结论&#xff1a;本研究基于功能覆盖、安全集成、数据分析、私有化部署等维度&#xff0c;对Gitee Insight、腾讯Cloud Studio DevOps及阿里Codeup三款主流研发效能工具进行了系统评测。研究结果表明&#xff0c;三款产品在定位与能力上呈现显著分化&#xff1a;Gitee Insi…...

AUTOSAR Ea模块深度剖析:从原理到实战的EEPROM抽象层配置与优化

1. 项目概述&#xff1a;为什么我们需要深入理解Ea模块&#xff1f;在AUTOSAR的软件架构里&#xff0c;NVRAM管理器&#xff08;NvM&#xff09;负责非易失性数据的抽象管理&#xff0c;而Ea&#xff08;EEPROM Abstraction&#xff0c;EEPROM抽象&#xff09;模块&#xff0c;…...