基础小白快速入门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.hqwc.cn/news/504688.html

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

相关文章

七、基于FreeRTOSSTM32移植MQTT

1、移植环境 (1)Keil MDK: V5.38.0.0 (2)STM32CubeMX: V6.8.1 (3)MCU: STM32F407ZGT6 (4)已移植好FreeRTOS和调试好串口的项目。 FreeRTOS移植参考博客&#xff1a;示例1&#xff1a;FreeRTOS移植详解_基于HAL库工程_hal库移植rtos-CSDN博客mqttclient源码&#xff1a;htt…

GIS之深度学习01:检测电脑是否包含英伟达GPU

GPU&#xff08;Graphics processing unit&#xff09;&#xff0c;中文全称图形处理器&#xff0c;我们听说的更多的CPU全称是central processing unit&#xff0c;中央处理器。研究深度学习和神经网络大都离不开GPU&#xff0c;在GPU的加持下&#xff0c;我们可以更快的获得模…

Linux搭建SFTP服务器

案例&#xff1a;搭建SFTP服务器 SFTP&#xff08;SSH文件传输协议&#xff09; SFTP&#xff08;SSH文件传输协议&#xff09;是一种安全的文件传输协议&#xff0c;用于在计算机之间传输文件。它基于SSH&#xff08;安全外壳协议&#xff09;的子系统&#xff0c;提供了加密的…

java 基础(核心知识搭配代码)

前言 java的学习分为了上部分以及下部分进行学习&#xff0c;上部分就是对于java的基础知识&#xff0c;面向对象上&#xff0c;面向对象下&#xff0c;异常操作&#xff0c;javaApi&#xff1b;下部主要是集合&#xff0c;泛型&#xff0c;反射&#xff0c;IO流&#xff0c;J…

加密隧道技术

在现在的互联网上传输数据&#xff0c;首要考虑的就是安全。这关乎到你的隐私&#xff0c;个人信息&#xff0c;财产安全等等重大问题。如果你的程序本身传输的信息没有加密&#xff0c;也可以通过其他辅助方式让你的通信加密。一些工具的就是为了解决这样的场景的&#xff0c;…

ubuntu20下使用 torchviz可视化计算图

安装 torchviz&#xff1a; pip install torchviz示例代码&#xff1a;下面是一个简单的示例代码&#xff0c;展示如何使用 torchviz 可视化计算图&#xff1a; python import torch from torchviz import make_dot# 创建一个简单的模型 model torch.nn.Sequential(torch.nn…

《求生之路2》服务器如何选择合适的内存和CPU核心数,以避免丢包和延迟高?

根据求生之路2服务器的实际案例分析选择合适的内存和CPU核心数以避免丢包和延迟高的问题&#xff0c;首先需要考虑游戏的类型和对服务器配置的具体要求。《求生之路2》作为一款多人在线射击游戏&#xff0c;其服务器和网络优化对于玩家体验至关重要。 首先&#xff0c;考虑到游…

二维码门楼牌管理系统技术服务的分类与应用

文章目录 前言一、二维码门楼牌管理系统的分类二、二维码门楼牌管理系统的应用优势三、结论 前言 随着城市管理的精细化和智能化&#xff0c;二维码门楼牌管理系统成为了现代城市管理的重要工具。该系统将传统的门牌、楼牌、户牌与二维码技术相结合&#xff0c;实现了信息的快…

麒麟银河操作系统V10部署ffmpeg(也能用于Linux系统)

麒麟银河操作系统V10部署ffmpeg(也能用于Linux系统) 部署ffmpeg用来处理视频的各种操作 想使用ffmpeg&#xff0c;要先安装nasm&#xff0c;yasm&#xff0c;x264之后&#xff0c;否则会报错 nkvers 查看麒麟操作系统版本 cat /proc/version #查看linux版本信息 uname -a …

提升工作能力的方法

1.接受工作&#xff0c;只问标准 2.请示工作&#xff0c;必带方案&#xff1b; 3.汇报工作&#xff0c;突出成果&#xff1b; 4.分享工作&#xff0c;细说流程&#xff1b; 5.复盘工作&#xff0c;总结SOP 如果能这么做&#xff0c;那将是一个非常通透的高手&#xff0c;所以高…

Java学习-简单算法与正则表达式

1.排序算法 a.冒泡排序&#xff1a; 每轮找出当前最大值&#xff0c;冒到前面&#xff0c;循环长度减一次&#xff0c;每轮从1个比较到长度减i个 b.选择排序&#xff1a; 每一轮选择每一个位置的数组元素和后面的元素比较&#xff0c;从第i1个比较到最后一个 选择排序的优化&am…

芯科科技为全球首批原生支持Matter-over-Thread的智能锁提供强大助力,推动Matter加速成为主流技术

智能锁领域的先锋企业U-tec和Nuki选择芯科科技解决方案&#xff0c;成为Matter-over-Thread应用的领先者 致力于以安全、智能无线连接技术&#xff0c;建立更互联世界的全球领导厂商Silicon Labs&#xff08;亦称“芯科科技”&#xff0c;NASDAQ&#xff1a;SLAB&#xff09;今…