基础小白快速入门Python------>模块的作用和意义

模块,

这个词听起来是如此的高大威猛,以至于萌新小白见了瑟瑟发抖,本草履虫见了都直摇头,好像听上去很难的样子,但是但是,年轻人,请听本少年细细讲述,他只是看起来很难,实际上也有一点难

在Python开发中,我们其实经常使用到模块这个东西,当我们学习到python的中后期,会觉得不同的模块,哎呀哎呀,头好大好大,其实,最原始最基本的模块儿也只不过是那一个最基础,最原始,最狂野的helloworld.py

没错,就是helloworld.py   

在我们最先学习python的时候,我们就使用了模块儿而不自知,如今经过我说一嘴,你不仅知道了你使用了最基本的模块,也许你还会悟出一个道理

你使用了很多模块儿。

那么,模块究竟是个啥?

听闻helloworld.py也算模块,我们不禁质疑到,小小的helloworld.py也算模块?

当然让然,

首先helloworld.py是一个文件

其次helloworld.py还包含了语句

最后helloworld.py里面还有一个print输出函数

这就是一个最基本的模块

简单的来一个helloworld

这上面的.py就是模块

helloworld是最小最原始的模块

所以我们日常写的代码都算是一个小模块

模块,是一种组织代码的方式,能够让我们的代码更高效的运行,是一种能够牛逼的手法,模块通常用.py来表明文件格式,里面包含不同函数和不同语句,类,以及变量,来实现我们想要的功能

可是可是,往往学到后期,我们经常被库,函数,模块搞得头很大

这三者又有怎么样的联系呢?怎么个事?

同学同学,别急别急,在学习编程的过程中,库(Library)、函数(Function)和模块(Module)是经常会遇到的三个概念,

它们之间有着紧密的联系,但又各自有不同的职责和特点。

这三者是个啥?


1. **函数(Function)**:
函数是编程语言中用于执行特定任务的代码块。它可以接受输入参数,并可以返回一个结果。函数是模块或程序的一部分,它可以被重复调用,以执行具体的操作,如数学计算、数据处理等。


2. **模块(Module)**:
模块是包含了一组相关函数、变量和对象的文件它可以被其他程序或模块导入使用由于我们可能在一个文件中导入多个文件,一个模块中导入很多模块,这是我们会觉得很难,但搞清楚具体的概念发现,哦哦哦~原来,不过如此。模块的主要目的是为了代码的复用和组织,它可以被看作是自包含的代码库。在大型项目中,使用模块可以帮助开发者组织和管理代码,提高开发效率。


3. **库(Library)**:
库是一组为了特定目的而编写的模块的集合它提供了一系列预先编写好的函数和对象,以便开发者可以使用这些功能而不需要从头编写代码。库通常是为了处理常见的任务或者实现某些复杂的功能而编写的。比如,Web开发中的Django库、数据分析中的NumPy库等。

import tkinter as tk
import randomdef main():root = tk.Tk()root.title("猜数字游戏")target = random.randint(1, 100)attempts = 0guess = Nonelabel = tk.Label(root, text="猜数字游戏开始!数字范围是1到100。", font=("Arial", 14))label.pack(pady=20)entry = tk.Entry(root, font=("Arial", 16), width=10)entry.pack(pady=10)def check_guess():global guess, attemptsguess_str = entry.get()try:guess = int(guess_str)except ValueError:label.config(text="输入有误,请输入一个有效的数字。")returnattempts += 1if guess < target:label.config(text="猜小了!请再试一次。")elif guess > target:label.config(text="猜大了!请再试一次。")else:label.config(text=f"恭喜你,猜对了!数字是{target}。你一共猜了{attempts}次。")reset_button.config(state="normal")check_button = tk.Button(root, text="检查", command=check_guess, font=("Arial", 16))check_button.pack(pady=10)def reset():# 这里是重置函数的代码passreset_button = tk.Button(root, text="重置", command=reset, font=("Arial", 16), state="disabled")reset_button.pack(pady=10)def reset():global attempts, guessattempts = 0guess = Nonelabel.config(text="猜数字游戏开始!数字范围是1到100。")entry.delete(0, tk.END)reset_button.config(state="disabled")root.mainloop()if __name__ == "__main__":main()

代码有点儿小问题哈,但不影响本草履虫分享模块儿,不过有大神愿意斧正我也是非常开心的

这个猜数字游戏里面

这就是咱们定义的函数

这就是咱们导入的模块和库


这三者的联系:


- **函数**是模块的一部分,模块中可以包含多个函数。
- **模块**可以被看作是较小型的库,一个库是由多个模块组成的。
- **库**则是由多个模块和函数组成的,它提供了更高级别的抽象,使得开发者可以更容易地使用特定的功能。


在实际应用中,我们要根据需要选择合适的库,并使用其中的函数和模块来完成特定的任务。例如,在Python中进行数据分析时,可能会使用到NumPy库中的函数来执行矩阵运算,使用Pandas模块来处理数据表格。


理解这三者的关系,有助于我们更好地组织代码,选择合适的方法来解决问题,提高编程效率和代码质量。在学习的过程中,应当逐步理解和掌握它们的特点和应用方式。

那么又有人说了,凭啥我只能用别人的,我也想用我自己的,不行吗

当然可以,非常可以,你只需要写完以后简单的来一个import   加上你的模块名就成了

比如

import  helloworld

没人说你啥的

我们就先浅浅的创建一个my_module吧

# my_module.pydef greet(name):return "Hello, " + name + "!"class Dog:def __init__(self, name):self.name = namedef bark(self):return "Woof!"

在来创建另一个main

# main.pyimport my_module# 使用my_module中定义的函数
print(my_module.greet("World"))# 创建my_module中定义的Dog类的实例
my_dog = my_module.Dog("Fido")
print(my_dog.bark())

这是两者的文件名

这是运行后的效果

你学会了吗

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

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

相关文章

GO-接口

1. 接口 在Go语言中接口&#xff08;interface&#xff09;是一种类型&#xff0c;一种抽象的类型。 interface是一组method的集合&#xff0c;接口做的事情就像是定义一个协议&#xff08;规则&#xff09;&#xff0c;只要一台机器有洗衣服和甩干的功能&#xff0c;我就称它…

【go语言开发】swagger安装和使用

本文主要介绍go-swagger的安装和使用&#xff0c;首先介绍如何安装swagger&#xff0c;测试是否成功&#xff1b;然后列出常用的注释和给出使用例子&#xff1b;最后生成接口文档&#xff0c;并在浏览器上测试 文章目录 安装注释说明常用注释参考例子 文档生成格式化文档生成do…

C++从零开始的打怪升级之路(day39)

这是关于一个普通双非本科大一学生的C的学习记录贴 在此前&#xff0c;我学了一点点C语言还有简单的数据结构&#xff0c;如果有小伙伴想和我一起学习的&#xff0c;可以私信我交流分享学习资料 那么开启正题 今天分享的是关于模板的知识点 1.非类型模板参数 模板参数分为…

大模型生成,Open API调用

大模型是怎么生成结果的 通俗原理 其实&#xff0c;它只是根据上文&#xff0c;猜下一个词&#xff08;的概率&#xff09;…… OpenAI 的接口名就叫【completion】&#xff0c;也证明了其只会【生成】的本质。 下面用程序演示【生成下一个字】。你可以自己修改 prompt 试试…

高并发下的 AtomicReference 性能陷阱

介绍 Java 提供了 AtomicInteger/AtomicLong 在并发编程里经常用到&#xff0c;它们封装了对 int 和 long 的原子操作。 Java 还提供了 AtomicReference&#xff0c;用于对象引用做原子性的管理&#xff0c;比如 get、set、CAS。 一般情况下 AtomicInteger、AtomicLong 的性能…

mac新环境

1、maven 设置阿里云镜像 打开Maven的settings.xml文件。找到<mirrors>标签&#xff0c;如果没有&#xff0c;可以手动添加。在<mirrors>标签内部添加以下内容&#xff1a; <mirror> <id>nexus-aliyun</id> <mirrorOf>*</mirrorO…

【C++】类的转换函数

使用场景 C中当你创建了一个类&#xff0c;你想把这个类对象转换成基本类型的函数。类对象->基本类型对象 原理 如下实例&#xff0c;设计一个分数类&#xff0c;实现分数转换成double 浮点数的转换函数。并在mian函数隐式调用。 #include<iostream> class Fractio…

6. 使用 Spring Boot进行开发(Developing with Spring Boot)

6. 使用 Spring Boot进行开发&#xff08;Developing with Spring Boot&#xff09; 本节详细介绍了如何使用Spring Boot。它涵盖考虑构建系统、自动配置以及如何运行应用程序等主题。我们还介绍一些 Spring Boot 最新做法。虽然 Spring Boot 没有什么特别之处&#xff08;它只…

Java 接口和抽象类有何区别?

Java接口&#xff08;Interface&#xff09;和抽象类&#xff08;Abstract Class&#xff09;都是面向对象编程中用于实现多态和代码复用的重要概念&#xff0c;但它们之间有几个关键的区别&#xff1a; 1. **实例化**&#xff1a; - **接口**&#xff1a;不能被实例化。它…

【Spring连载】使用Spring Data访问 MongoDB----对象映射之JSON Schema

【Spring连载】使用Spring Data访问 MongoDB----对象映射之JSON Schema 一、生成Schema二、加密字段三、JSON Schema类型 从3.6版本开始&#xff0c;MongoDB支持根据提供的 JSON Schema验证documents的集合。在创建集合时&#xff0c;可以定义schema本身以及验证操作和级别&…

Python爬虫Cookies 池的搭建

Cookies 池的搭建 很多时候&#xff0c;在爬取没有登录的情况下&#xff0c;我们也可以访问一部分页面或请求一些接口&#xff0c;因为毕竟网站本身需要做 SEO&#xff0c;不会对所有页面都设置登录限制。 但是&#xff0c;不登录直接爬取会有一些弊端&#xff0c;弊端主要有…

南京师范大学计电院数据结构课设——排序算法

1 排序算法 1.1 题目要求 编程实现希尔、快速、堆排序、归并排序算法。要求首先随机产生10000个数据存入磁盘文件&#xff0c;然后读入数据文件&#xff0c;分别采用不同的排序方法进行排序并将结果存入文件中。 1.2 算法思想描述 1.2.1 随机数生成 当需要生成一系列随机数…

windows 11 前后端项目部署

目录 1.准备环境&#xff1a; 2.安装jdk 测试&#xff1a;winr 输入cmd 3.安装tomcat 4.安装mysql 远程导入数据&#xff1a; 外部后台访问&#xff1a;192.168.232.1:8080/crm/sys/loginAction.action?usernamezs&password123 5.安装nginx 前后端部署&#xff1…

qsort函数的模拟实现(冒泡排序模拟)

冒泡排序&#xff1a; 从第一个元素开始&#xff0c;依次比较相邻的两个元素&#xff0c;如果顺序不对就交换它们。 经过一轮遍历后&#xff0c;最大&#xff08;或最小&#xff09;的元素会排在最后。 重复进行上述步骤&#xff0c;直到没有任何元素需要交换&#xff0c;即…

Linux了解

简介 Linux是一种自由和开放源代码的类UNIX操作系统&#xff0c;由芬兰的Linus Torvalds于1991年首次发布。Linux最初是作为支持英特尔x86架构的个人电脑的一个自由操作系统&#xff0c;现在已经被移植到更多的计算机硬件平台&#xff0c;如手机、平板电脑、路由器、视频游戏控…

爬虫入门到精通_实战篇8(分析Ajax请求并抓取今日头条美食美图)_界面上抓取Ajax方式

1 目标 目标&#xff1a; 抓取今日头条美食美图&#xff0c;如下&#xff1a; 一些网页直接请求得到的HTML代码并没有在网页中看到的内容&#xff0c;因为一些信息是通过Ajax加载&#xff0c;并通过js渲染生成的&#xff0c;这时就需要通过分析网页的请求来获取想要爬取的内容…

解决conda环境下import TensorFlow失败的问题

问题描述 安装了anaconda的电脑&#xff0c;新建了一个名叫deeplearning的环境&#xff0c;在该环境下已经成功安装了tensorflow。 于是在终端打开python并执行代码 import tensorflow as tf print(1)除了提示 2024-02-27 21:50:00.801427: I external/local_tsl/tsl/cuda/c…

CSS 盒子模型(box model)

概念 所有HTML元素可以看作盒子&#xff0c;在CSS中&#xff0c;"box model"这一术语是用来设计和布局时使用CSS盒模型本质上是一个盒子&#xff0c;封装周围的HTML元素&#xff0c;它包括&#xff1a;外边距(margin)&#xff0c;边框(border)&#xff0c;内边距(pad…

关于 HTTP 协议,你了解多少

HTTP协议 FastAPI 是建立在 HTTP 协议之上&#xff0c;所以为了更好的掌握 FastAPI。我们需要先简单的了解一下 HTTP协议 简介 HTTP&#xff08;Hypertext Transfer Protocol&#xff09;遵循经典的客户端-服务器模型&#xff0c;客户端打开连接以发出请求&#xff0c;然后等…

【Go语言】Go语言中的流程控制

Go语言中的流程控制 流程控制主要用于设定计算执行的顺序&#xff0c;简历程序的逻辑结果&#xff0c;Go语言的流程控制语句与其他语言类似&#xff0c;支持如下几种流程控制语句&#xff1a; 条件语句&#xff1a;用于条件判断&#xff0c;对应的关键字有if、else和else if&a…