python如何自学模块_20课零基础快速学python代码模块的定义 使用自己的模块

模块的定义

方式一:使用自己的模块

import语句

from … import … 语句

if __name__ == '__main__'

方式二:使用他人的模块

探究他人模块

自学模块

学习CSV模块

那什么是模块呢?

之前我们学过函数, 我们说函数就如同包裹,它封装了一段代码,可以实现所需功能。

64380cd7912397dd1adc7eed5e0064b1d1a2873f.jpeg?token=2708a28c0ddb886c2d86385ce71a11db

后来我们学了类,我们发现,类比函数更强大,它封装了属性与方法,可以实现更多的功能。

aa18972bd40735fad19fb6d596d3d9b50e2408f3.jpeg?token=b525b2f11fef6d632caeb04ba119748b

今天我们学习一下模块,这个就是江湖中争夺的储物戒指,因为它比函数、类强大很多,能够封装更多的功能代码。用句专业术语来讲: 模块是最高级别的程序组织单元,它将程序代码和数据封装起来以便重用。也就是模块可以封装任何数据、代码。

d833c895d143ad4b071f4a4685808ca9a50f068f.jpeg?token=95f0ae1e8197bde7b6fcf3c2ce47ae95

在上节课中,我们编辑了一个名为readfile.py的文件,这个后缀名为.py的文件就是一个单独的模块。其实,在我们每次的教学课堂中,我们运行的代码也是运行在一个后缀为.py的文件上,只不过我们为了方便大家,隐藏了文件名字。

279759ee3d6d55fb27bffbfb7fa0994c21a4dd7f.jpeg?token=6b382821cb9579c70b462d96d2665306

每一个后缀名为.py的文件都是模块。模块作用就是将数据、代码封装起来,以便再使用。模块不仅仅我们自己使用,也可以把它给别人使用,就像传递文件一样那么简单。好了,接下来,我们看一看模块使用的方式。

建立模块,就是建立.py文件。在其中一个.py文件中引入另一个.py文件。如下图:我们在main.py模块中引入mytest.py模块。

8b82b9014a90f603f54b08c53190651db251edc6.jpeg?token=b09ff535dd9c6ba3b223529ae67f08c7

请你阅读main.py与mytest.py中的文件内容,并直接运行main.py文件。

这就是main.py文件引入了mytest.py模块,将mytest.py的内容输出出来了。就一句代码 import mytest,下面,我们先来看一看import这就是main.py文件引入了mytest.py模块,将mytest.py的内容输出出来了。就一句代码 import mytest,下面,我们先来看一看import

b999a9014c086e063725131e048aadf20bd1cb5a.jpeg?token=0b3c007cba18b6dd7a97241d58e3623f

import语句可以导入一个模块,目的不仅仅是打印语句,更主要的是可以使用模块中的变量、函数与类。

2fdda3cc7cd98d103a9a5bf226bd6e087aec902b.jpeg?token=b8031be0c1c089a749239d22a65db92f

def hello():

intro = "你好,我是驭风少年函数"

print("hello函数正在运行")

class Test:

strClass = "我是类,我是驭风少年"

def go(self):

print("类在运行")

print(strtest) #打印变量strtest

hello() #运行函数hello()

shaonian = Test() #Test类的实例化

print(shaonian.strClass) #打印实例属性

shaonian.go() #调用实例方法go方法

在这段代码中,赋值变量、定义函数、定义类、使用变量、调用函数、实例化对象都在一个文件中。我们通过使用模块,把赋值变量、定义函数、定义类放在mytest.py文件中,把使用变量、调用函数、实例化对象放在main.py文件中

import mytest #导入mytest模块

print(mytest.strtest) #打印mytest模块中变量strtest

mytest.hello() #运行mytest模块中函数hello()

shaonian = mytest.Test() #mytest模块中Test类的实例化

f9dcd100baa1cd11940145e5be901efac1ce2dcc.jpeg?token=249904ab5a23cd825485ac5bd61ba42d

import还有另外一种用法,就是import…as… 先看一下下面例子。

0824ab18972bd407575a44c17c0b48570eb309f1.png?token=d892a0e6390071282cfa18456e334890

如果你嫌mytest名字太长,就可以使用import…as…语句,可以将mytest的名字变成ts,这样在后面需要使用mytest模块名的地方,就可以换成ts名字使用。还有,当我们需要导入多个模块时,我们可以使用逗号,将模块名隔开。例如: import x,y,z 就是将X.py文件,Y.py文件,Z.py文件同时引入。好了,这就是import语句。下面我们来学习一下from…import语句。

7e3e6709c93d70cfc9316f47ff5e0706bba12b3e.jpeg?token=a3a9d09fd507aa23b91b83fc200638ca

from…import…语句可以将某一模块的部分代码导入到另一个模块中。

9f2f070828381f302952c4efa1839a0e6f06f0b2.jpeg?token=3fb93db42efcc66803f75c7b45994696

还是上面那个案例,我们来改造一下。

d000baa1cd11728bd941f50cce7e15c8c3fd2c3c.png?token=b094446a47250e71bd88c64603254242

运行一下下面代码, 观察终端里的效果。我们将mytest.py文件中的变量与函数引导main.py中使用,这样使用时无需加入”模块名”前缀同样,我们这次引入变量与函数,我们可以将:

7acb0a46f21fbe09cd3634416ce2da358644ad80.png?token=1c9592369b92d4961636131ae23f859f

这就是from…import…语句的用法。

在讲if __name__ == '__main__'语句之前,先给大家介绍一下”程序的入口”。

Python与其他语言一样,程序都要有一个运行入口。当我们运行某个py文件时,就能启动整个程序。那么这个py文件就是程序的入口。

就像上面那个案例:

7acb0a46f21fbe09260ded826ce2da358644ad59.jpeg?token=c94785a43aea3fac7e81241bc1c9cc03

当然, 以后还会遇到更复杂的情况, 只有一个主模块,引入了其他多个模块。

a5c27d1ed21b0ef4cb658bcbd54687dc80cb3e1a.jpeg?token=bedd3a2d00f4553ee1658f46edd78473

当我们有很多py文件在一个程序中,但是你只能指定一个程序入口。这样你就需要使用if __name__ == '__main__':来指定某个py文件为程序入口。第一种情况:加上这一句代码,程序和原来一样:

bba1cd11728b47102df69f99c54c15fbfd032316.png?token=18fa0030123388b26d05128b4a4f9c63

这就是,当把mytest.py导入到main.py文件中,在mian.py中加入if __name__ == '__main__': 执行main.py, 程序正常执行。

运行first.py代码,你会发现,只能输出”我是a模块”。

这是因为,此时mian.py文件已经不再是程序的入口。main.py文件导入到了first.py文件中,first.py文件运行的时候,只会执行mian.py文件中本身代码,不会执行if __name__ == '__main__':后面的代码。总结下if __name__ == '__main__':语句的用法

908fa0ec08fa513df0b327803aef83fdb3fbd9d8.jpeg?token=b91d842767f9e8c1f231d0407a078985

好了,这就是如何使用我们自己的模块。接下来,我们学习下如何使用他人模块。

a8773912b31bb051bd40609a3ff80cb24bede0a1.png?token=1d3e1cb0231b0a28d5aa95e85f175380

运行代码你会发现,先打印“hello”,延迟3秒后才打印“python”这就是time模块中的time.sleep(3)语句起作用了。你还使用过Python自带的random模块。运行一下下面代码,观察终端里的效果。

0824ab18972bd4078881ae6c7d0b48570eb30961.png?token=a5cf8c58032ebdf8d284c3187a5c4c83

这就是我们之前使用Python自带的time与random模块的用法。Python世界中, 为我们提供了很多内置的模块; 也可以引入一些其他第三方的模块。使用其他第三方模块, 如爬虫模块, 数据分析模块, 会在其他课程中具体讲解。这节课, 我们来探究下Python的内置模块。们在Python环境中,找到了time.py文件中的代码:

3801213fb80e7bec5cd9a6313eac6f3e9a506b63.png?token=aac3d235e20625eb2d82b92a471f5925

代码很长很长, time.py文件中的结构如下:

caef76094b36acafa0e2ae1b795b5b1600e99c5b.jpeg?token=a45fecfa58537e8e7a6a45c7cdb21b1d

我们可以看到我们经常使用的sleep()函数。

def sleep(secs: float) -> None: ...

secs:float 就决定了,需要延迟时间,也可以传入浮点数类型的数值。我们可以查看Python中所有内置模块的语法。

学习模块, 就是要学会模块的功能,也就是模块中的函数方法如何使用。

我们可以把time模块重点的功能内容做成笔记:

728da9773912b31b33ef512d819ae07cdbb4e1b8.png?token=2044486fef9152a228720416909a3c19

这就是time模块的内容。这是比较小的模块,知识点比较单一的模块,还可以自学;但是对于知识点比较复杂的庞大模块,就比较困难了。比如说数据分析的NumPy与pandas模块,这就需要进行系统学习的。好了, 接下来,带大家学习一个CSV模块。CSV是一种比较实用又简单的模块。学完CSV模块,就可以使用程序来处理excel表格了。

我们先在excel中新建一个excel表格, 但是要选择”CSV”格式. 我将这个文件保存成”mytest.csv”

a6efce1b9d16fdfa0410f58dbc0d5a5295ee7bd9.jpeg?token=1de6c61889972d0f5f152cf88f28dd97

在”mytest.csv”文件中,写下如下内容:

d043ad4bd11373f09bcfae8baf8d9dfdfaed04be.jpeg?token=ff49446a96c6734424989dc683039a3b

503d269759ee3d6debb22bc34494bb244e4adecf.png?token=ae9ad2e7e1d0ddafd3022d42f0d2bce3

运行结束后, 我们看到终端输出的每一行信息都是一个列表 。

接下来我们看一下CSV文件的写入方法:

d058ccbf6c81800ab7be9dc8b7b7e5fc838b4721.png?token=712599fce380b2ab16379dfae1785e51

writer是实例化对象,writerow()是写入的方法,括号内的数据是列表形式。

运行一下下面代码,观察csv文件里的效果。

48540923dd54564e2953da26b45c4a84d1584f07.png?token=4c8869fcba02a6c8ad490c98b7841332

这就是csv文件的写入。好了, 这节课的内容就讲到这里了。我们今天学习了模块引入, 模块调用, 学习使用Python内置模块。内容很多, 大家要记得复哦。

我们下节课见。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值