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 其中一个目录下。

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

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

照片写真记录摄影作品记录网站源码

完美适应iPad,平板,手机竖屏不支持lazy,横屏可以,但建议使用平板查看效果, 有服务器直接上传解压使用,环境nginxphp, 没有服务器也没关系,可以直接使用html

模组差分包,可能是你远程升级失败的罪魁祸首!

也许我们已经习惯生活里的问题接连不断。。。但当收到客户的问题反馈,还是会心头一紧! 最近有客户反馈在乡村里频繁出现掉线的情况。 我们赶紧排查:换货、换SIM卡,发现只有去年5月22号采购的那批模块在客户环境附近会出现掉线的…

开放式蓝牙耳机哪个品牌好用?行业顶尖五款开放式耳机别错过!

开放式蓝牙耳机哪个品牌好用?行业顶尖五款开放式耳机别错过! 随着开放式耳机的流行,越来越多的用户开始青睐这种类型的耳机。尽管有些网友将开放式耳机称为“智商税”,但我相信,对于真正体验过的人来说,它…

基于Python的自然语言处理系列(14):TorchText + biGRU + Attention + Teacher Forcing

在前几篇文章中,我们探索了序列到序列(seq2seq)模型的基础,并通过使用双向GRU和上下文向量改进了模型的表现。然而,模型仍然依赖一个固定的上下文向量,这意味着它必须从整个源句中压缩信息,导致…

并发编程 - 锁(NSLock)

引言 在多线程编程中,数据一致性是一个必须解决的问题。多个线程同时访问同一片共享数据时,极易发生竞争条件(race conditions),导致数据的不一致性,甚至程序崩溃。为了解决这些问题,我们需要引…

大模型备案最难材料搞定——安全评估报告、安全评估测试题【评估测试题+备案源文件】

大模型备案,最难搞定的2个材料,安全评估报告,安全评估测试题、拦截词,这里都有了 文章目录 (一)适用主体 (二)语料安全 (三)模型安全 (四&…

Java_Se 数据变量与运算符

标识符、变量、常量、数据类型、运算符、基本数据类型的类型转换等。这些是编程中的“砖块”,是编程的基础。要想开始正式编程,还需要再学“控制语句”,控制语句就像“水泥”,可以把“砖块”粘到一起,最终形成“一座大…

2024年图纸加密防泄密软件Top10榜单 | 防止CAD图纸泄密打造坚不可摧的图纸安全

在当今数字化高速发展的时代,图纸作为重要的知识产权和商业机密,其安全问题备受关注。 一旦图纸泄露,可能给企业和个人带来巨大的损失。 为了保护图纸的安全,各种加密防泄密软件应运而生。下面为大家揭晓2024 年图纸加密防泄密软…

修复 msvcr120.dll 丢失的方法,总结几个靠谱有效的方法

1. msvcr120.dll 定义 1.1 Microsoft Visual C Redistributable Package 的一部分 msvcr120.dll 是 Microsoft Visual C 2013 Redistributable Package 的核心组件,该包为运行时环境提供了必要的库文件。它确保了使用 Visual C 2013 编译的应用程序能够在没有开发…

想在产品上扩展大储存怎么做?开源啦!

相比伙伴们都遇到过,芯片内存不够的问题:经常会有大量的照片、音频、文档等需要存储,怎么办呢? 我们知道可以外扩,要编写各种驱动,还有Flash替换,这个工程不可谓不大啊! 但&#x…

Spring中的容器接口

容器接口 首先了解一下BeanFactory和ApplicationContext这两个接口的关系。 其实在一个 SpringBoot 项目中,这个 SpringBoot 项目的启动类的返回值就是一个 ApplicationContext 接口的实现类。 然后在 IDEA 中选中这个类,按住ctrlaltU可以查看类图&…

JavaScript 安装库npm报错

今天在编写JavaScript代码时,缺少了包express。 const express require(express); const app express();app.get(/, (req, res) > {res.send(Hello, world!); });app.listen(3000, () > {console.log(Server is running on port 3000); });npm install exp…

小程序开发设计-小程序的宿主环境:组件⑦

上一篇文章导航: 小程序开发设计-小程序的宿主环境:宿主环境简介⑥-CSDN博客https://blog.csdn.net/qq_60872637/article/details/142425131?spm1001.2014.3001.5501 注:不同版本选项有所不同,并无大碍。 1.小程序中组件的分类…

深度学习(1):基础概念与创建项目

文章目录 基础概念创建项目1.在Anaconda上创建序虚拟环境2.创建PyProject3.创建完成 基础概念 CPU(中央处理器) CPU 是计算机的核心部件,负责执行计算和逻辑操作。它按照指令序列进行任务处理,擅长处理串行任务。CPU 的性能直接…

【MyBatis 源码拆解系列】MyBatis 运行原理 - 读取 xml 配置文件

欢迎关注公众号(通过文章导读关注:【11来了】),持续 分享大厂系统设计! 在我后台回复 「资料」 可领取编程高频电子书! 在我后台回复「面试」可领取硬核面试笔记! 文章导读地址:点击…

Nature:科研论文中正确使用ChatGPT的三个原则

我是娜姐 迪娜学姐 ,一个SCI医学期刊编辑,探索用AI工具提效论文写作和发表。 美国科罗拉多大学安舒茨医学院的生物医学信息学研究员Milton Pividori,一直在探索如何将ChatGPT等AI工具该技术融入课题组日常科研任务,例如进行文献综…

远程升级不成功?背后“凶手”可能是模组差分包…

最近有客户反馈在乡村里频繁出现掉线的情况。通过换货、换SIM卡对比排查测试,发现只有去年某批采购的那批模块在客户环境附近会出现掉线的情况,而今年采购的模块批次就不会掉线,很奇怪。 这个出问题的模块,就是合宙4G-Cat.1低功耗…

01.前端面试题之ts:说说如何在Vue项目中应用TypeScript?

文章目录 一、前言二、使用Componentcomputed、data、methodspropswatchemit 三 、总结 一、前言 与link类似 在VUE项目中应用typescript,我们需要引入一个库vue-property-decorator, 其是基于vue-class-component库而来,这个库vue官方推出…

数据驱动农业——农业中的大数据革命

橙蜂智能公司致力于提供先进的人工智能和物联网解决方案,帮助企业优化运营并实现技术潜能。公司主要服务包括AI数字人、AI翻译、埃域知识库、大模型服务等。其核心价值观为创新、客户至上、质量、合作和可持续发展。 橙蜂智农的智慧农业产品涵盖了多方面的功能&…