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

python学习之【模块】

前言

上一篇文章 python学习之【深拷贝】中学习了python中的深浅拷贝学习内容,这篇文章接着学习python中的模块

什么是模块

在python中,一个文件(以“.py”为后缀名的文件)就叫做一个模块,每一个模块在python里都被看做是一个独立的文件。

模块可以被项目中的其他模块、一些脚本甚至是交互式的解析器所使用,它可以被其他程序引用,从而使用该模块里的函数等功能,使用Python中的标准库也是采用这种方法。

python中的常见的系统内置模块有:

os模块:os模块包含普遍的操作系统功能
sys模块:提供了一系列有关Python运行环境的变量和函数
random模块:random模块用于生成随机数
time 模块: 主要包含各种提供日期、时间功能的类和函数
datetime模块:对time模块的一个高级封装
shutil模块:是一种高层次的文件操作工具
logging模块:将日志打印到了标准输出中
re模块:可以直接调用来实现正则匹配
pymysql模块:连接数据库,并实现简单的增删改查
threading模块:提供了更强大的多线程管理方案
queue模块:实现了多生产者,多消费者的队列
json模块:用于字符串和数据类型间进行转换json

模块的导入

python中导入模块的方法有:

import  模块名称  [as别名]
from  模块名称 import  函数/变量/类

举个例子:

import 模块名称 [as别名]

# 例子1  导入数学运算模块  math
import math
print(math,id(math),type(math))
print(math.pi)  #返回一个浮点数 3.141592653589793,表示圆周率。
print('------------------进行math模块中相关函数的使用-----------/')
print(dir(math))
print('pow()函数的使用',math.pow(2,3),type(math.pow(2,3)))  #2的3次方
print('向上取整',math.ceil(3.00001))  #向上取整  4
print('向下取整',math.floor(3.99999))   #向下取整3

在这里插入图片描述

from 模块名称 import 函数/变量/类

# 只引入math模块中的pi
from math  import  pi
print(pi)   #3.141592653589793

当我们使用该方法引入模块时,要注意我们导入的是该模块中的pi常量,如果此时我们再引入math模块中其他的函数时程序就会报错:

在这里插入图片描述

from math  import  pi
# 尝试引入pow()函数
print(pow(2,3),type(pow(2,3)))  #8 <class 'int'> 

我们看到当我们再尝试引入没有进行导入的math函数时,会发现竟然也有返回值; 但是这里的pow()函数并非math模块中的函数,他输出的类型是int型而非math模块中pow函数的输出类型float型,因此虽然出现了返回值,但它调用的并非math模块中的pow()函数。

在这里插入图片描述

自定义模块

了解了什么时python中的模块后,我们就可以自定义模块了:

自定义模块将python文件的名字命名为一个简洁、见名知意的文件名。

在这里插入图片描述

定义了一个cal模块
def  add(a,b):return  a+b
def  div(a,b):return a/b

然后进行自定义模块的导入:

# 引入新建的cal模块
import  cal
print(cal.add(10,30))
print(cal.div(10,20))# 只导入cal模块中的add函数
from cal import add
print(add(10,20))

在这里插入图片描述

进行主程序运行

在每个模块的定义中都包括一个模块名称的变量 __name__ ,变量的值是__main__。 程序可以检查该变量以确定它们在哪个模块中执行; 如果一个模块不是被导入到其他的程序中执行的, 那么它可能在解释器的顶级模块中执行。

我们自定义一个模块cal2:
在这里插入图片描述
在index1.py中对其进行导入:
在这里插入图片描述
我们发现当我们在运行index1的文件时,运行结果是将cal2也运行了,也就是说cal2被index1导入后会在index1运行时也运行,如果我们想指定某个程序运行怎么办呢?

这就需要在cal2这个模块中添加主程序运行代码:

def  add(a,b):return a+b
# 直接运行导入cal2的指定文件   只有点击运行cal2这个文件时才能运行如下语句
if __name__ =='__main__':print(add(10,30))

在这里插入图片描述
这样就能避免模块被导入后,和新的文件同时运行了。

每篇一语

学习是一种终身受益的能力。
如有不足,感谢指正!

相关文章:

python学习之【模块】

前言 上一篇文章 python学习之【深拷贝】中学习了python中的深浅拷贝学习内容&#xff0c;这篇文章接着学习python中的模块。 什么是模块 在python中&#xff0c;一个文件&#xff08;以“.py”为后缀名的文件&#xff09;就叫做一个模块&#xff0c;每一个模块在python里都…...

dns电脑服务器发生故障怎么修复

DNS电脑服务器发生故障可能会导致网络连接问题、网页无法访问、或者电子邮件无法发送等情况。修复DNS电脑服务器故障可以采取多种方法&#xff0c;例如检查网络连接、更换DNS服务器等措施。当DNS电脑服务器发生故障时&#xff0c;可以采取以下修复措施&#xff1a; 尝试刷新DNS…...

Python项目Flask ipv6双栈支持改造

一、背景 Flask 是一个微型的(轻量)使用Python 语言开发的 WSGI Web 框架(一组库和模块),基于Werkzeug WSGI工具箱/库和Jinja2 模板引擎,当然,Python的WEB框架还有:Django、Tornado、Webpy,这暂且不提。 Flask使用BSD授权。 Flask也被称为microframework(微框架),F…...

hcia 目的mac为(单播 组播 广播)mac

从下往上看...

专栏十:10X单细胞的聚类树绘图

经常在文章中看到对细胞群进行聚类,以证明两个cluster之间的相关性,这里总结两种绘制这种图的方式和代码,当然我觉得这些五颜六色的颜色可能是后期加的,本帖子只总结画树状图的方法 例一 文章Single-cell analyses implicate ascites in remodeling the ecosystems of pr…...

linux查找命令使用的正则表达式

正则表达式是一种用于匹配和操作文本的强大工具&#xff0c;它是由一系列字符和特殊字符组成的模式&#xff0c;用于描述要匹配的文本模式。 正则表达式可以在文本中查找、替换、提取和验证特定的模式。 一般的查找命令是&#xff1a;grep&#xff0c;sed&#xff0c;awk 元字…...

ffmpeg6.0编译(NDK)

ffmpeg 6.0 支持vulkan 需要手动安装Vulkan 并将include里面的vk_video 和 vulkan 拷贝到 android-ndk-r25c/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/ vulkan 下载 cp -r vk_video $NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/…...

达观RPA实战-编码与解码

一、应用背景 项目中我们经常需要获取某个服务的JSON数据。如果响应返回的是JSON格式的数据,客户端通过JSON工具可正常解析。但如果碰到值里面有中文的,特别是返回的格式是类似“{"name": "\u5927\u7231\u4e2d\u56fd"}”处理起来会比较麻烦。本文将从编…...

配置Swagger开发环境有效,生产环境无效

安全扫描&#xff1a;通用信息泄漏【未授权访问ip:端口号/swagger-ui.html】 步骤一&#xff1a;配置启用变量【开发环境可用生产环境不可用】 application-dev.yml: swagger:enable: true application-pro.yml: swagger:enable: false 步骤二&#xff1a;根据配置变量控…...

Jmeter系列-线程组的执行顺序(10)

重点 每个测试计划至少需要有一个线程组 线程组下不同组件的执行优先级/顺序 1、配置元件、监听器 2、前置处理器 3、定时器 4、逻辑控制器 5、取样器 6、后置处理器 7、断言 取样器执行顺序 在没有逻辑控制器情况下&#xff0c;取样器是按从上往下的顺序执行的 参考文章…...

c# 面试题

简述 private、 protected、 public、 internal 修饰符的访问权限。 答&#xff1a; Private&#xff08;拍非得&#xff09; : 私有成员, 在类的内部才可以访问。 protected &#xff08;普泰忒&#xff09;: 保护成员&#xff0c;该类内部和继承类中可以访问。 Publ…...

目录优先的图片库网站PiGallery2

什么是 PiGallery2 &#xff1f; PiGallery2 是一个快速的目录优先的图片库网站&#xff0c;具有丰富的用户界面&#xff0c;针对在低资源服务器&#xff08;尤其是树莓派&#xff09;上运行进行了优化 所谓 目录优先 是指&#xff0c;这种网站的设计是以显示不同的目录&#x…...

17-垃圾回收相关概念

目录 一、System.gc()的理解二、内存溢出和内存泄漏2、内存泄漏 三、Stop the World1、什么是 stop the word ? 四、垃圾回收的并行和并发1、并发和并发2、垃圾回收的并行和并发 五、安全点与安全区域1、什么是安全点&#xff1f;2、安全区域 六、强引用&#xff08;不可回收&…...

Ubuntu-server 22.04LTS源码编译apache服务器

1 系统环境 # cat /etc/os-release PRETTY_NAME"Ubuntu 22.04.3 LTS" NAME"Ubuntu" VERSION_ID"22.04" VERSION"22.04.3 LTS (Jammy Jellyfish)" VERSION_CODENAMEjammy IDubuntu ID_LIKEdebian HOME_URL"https://www.ubuntu.co…...

科技资讯|苹果虚拟纸可在Vision Pro中为广告、书籍等提供MR内容和动画

近日&#xff0c;美国专利商标局正式授予苹果一项与虚拟纸张相关的专利。这是与虚拟纸张这项发明相关的第二项专利&#xff0c;鉴于苹果 Vision Pro 将于明年上市&#xff0c;那么我们离苹果实现虚拟纸张的发明又近了一步。 虚拟纸张将能够包含 2D、3D 和动画等 MR内容&#…...

JavaScript-promise使用+状态

Promise 什么是PromisePromise对象就是异步操作的最终完成和失败的结果&#xff1b; Promise的基本使用&#xff1a; 代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compati…...

xshell---git上传文件到gitee远程仓库配置

1.git下载 如果没有xshell下没有下载过git&#xff0c;可以参考这篇的教程&#xff1a;Linux配置安装 git 详细教程 下载后可以通过 git --version 查看git的版本号&#xff0c;验证是否安装成功 2.新建仓库 首先需要在gitee上注册一个账号 然后再主页面点击右上边框的 号…...

【GO语言基础】前言

系列文章目录 【Go语言学习】ide安装与配置 【GO语言基础】前言 【GO语言基础】变量常量 【GO语言基础】数据类型 文章目录 系列文章目录一、基础知识包和函数函数声明语法简洁性 括号成对出现GO常用DOS命令命名规则项目目录结构注释 总结 一、基础知识 包和函数 //声明本代…...

巧妙的设计

1. 判空逻辑,如果为空,抛异常,下面代码来自kafka client: Assert.notNull(queue, () -> "No cache found for " + txIdPrefix); 2. 本地cache设计,一下代码来自kafka client: private final Map<String, BlockingQueue<CloseSafeProducer<K, V&g…...

前端JavaScript中MutationObserver:监测DOM变化的强大工具

&#x1f3ac; 岸边的风&#xff1a;个人主页 &#x1f525; 个人专栏 :《 VUE 》 《 javaScript 》 ⛺️ 生活的理想&#xff0c;就是为了理想的生活 ! 目录 引言 1. MutationObserver简介 2. MutationObserver的属性 3. MutationObserver的应用场景 3.1 动态内容加载 …...

遍历 Map 类型集合的方法汇总

1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...

服务器硬防的应用场景都有哪些?

服务器硬防是指一种通过硬件设备层面的安全措施来防御服务器系统受到网络攻击的方式&#xff0c;避免服务器受到各种恶意攻击和网络威胁&#xff0c;那么&#xff0c;服务器硬防通常都会应用在哪些场景当中呢&#xff1f; 硬防服务器中一般会配备入侵检测系统和预防系统&#x…...

12.找到字符串中所有字母异位词

&#x1f9e0; 题目解析 题目描述&#xff1a; 给定两个字符串 s 和 p&#xff0c;找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义&#xff1a; 若两个字符串包含的字符种类和出现次数完全相同&#xff0c;顺序无所谓&#xff0c;则互为…...

图表类系列各种样式PPT模版分享

图标图表系列PPT模版&#xff0c;柱状图PPT模版&#xff0c;线状图PPT模版&#xff0c;折线图PPT模版&#xff0c;饼状图PPT模版&#xff0c;雷达图PPT模版&#xff0c;树状图PPT模版 图表类系列各种样式PPT模版分享&#xff1a;图表系列PPT模板https://pan.quark.cn/s/20d40aa…...

AI病理诊断七剑下天山,医疗未来触手可及

一、病理诊断困局&#xff1a;刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断"&#xff0c;医生需通过显微镜观察组织切片&#xff0c;在细胞迷宫中捕捉癌变信号。某省病理质控报告显示&#xff0c;基层医院误诊率达12%-15%&#xff0c;专家会诊…...

Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析

Java求职者面试指南&#xff1a;Spring、Spring Boot、MyBatis框架与计算机基础问题解析 一、第一轮提问&#xff08;基础概念问题&#xff09; 1. 请解释Spring框架的核心容器是什么&#xff1f;它在Spring中起到什么作用&#xff1f; Spring框架的核心容器是IoC容器&#…...

【Go语言基础【12】】指针:声明、取地址、解引用

文章目录 零、概述&#xff1a;指针 vs. 引用&#xff08;类比其他语言&#xff09;一、指针基础概念二、指针声明与初始化三、指针操作符1. &&#xff1a;取地址&#xff08;拿到内存地址&#xff09;2. *&#xff1a;解引用&#xff08;拿到值&#xff09; 四、空指针&am…...

CRMEB 中 PHP 短信扩展开发:涵盖一号通、阿里云、腾讯云、创蓝

目前已有一号通短信、阿里云短信、腾讯云短信扩展 扩展入口文件 文件目录 crmeb\services\sms\Sms.php 默认驱动类型为&#xff1a;一号通 namespace crmeb\services\sms;use crmeb\basic\BaseManager; use crmeb\services\AccessTokenServeService; use crmeb\services\sms\…...

Razor编程中@Html的方法使用大全

文章目录 1. 基础HTML辅助方法1.1 Html.ActionLink()1.2 Html.RouteLink()1.3 Html.Display() / Html.DisplayFor()1.4 Html.Editor() / Html.EditorFor()1.5 Html.Label() / Html.LabelFor()1.6 Html.TextBox() / Html.TextBoxFor() 2. 表单相关辅助方法2.1 Html.BeginForm() …...

HubSpot推出与ChatGPT的深度集成引发兴奋与担忧

上周三&#xff0c;HubSpot宣布已构建与ChatGPT的深度集成&#xff0c;这一消息在HubSpot用户和营销技术观察者中引发了极大的兴奋&#xff0c;但同时也存在一些关于数据安全的担忧。 许多网络声音声称&#xff0c;这对SaaS应用程序和人工智能而言是一场范式转变。 但向任何技…...