(进阶向)Python第九期模块化编程概念(模块、包、导入)及常见系统模块总结和第三方模块管理
目录
1、模块
1.1 自定义模块
1.2 系统自带模块
1.2.1 os模块
1.2.2 datetime与time模块
1.2.3 random模块
2、包
2.1第三方模块
2.1.1numpy模块:一般用于数值计算
2.1.2 pandas模块:一般用于数据分析与清理
2.1.3requests模块:一般用于Http的请求处理,爬取网页信息等
3、导入
引言:本期重点会讲解模块化的运用,模块化在编程语言中是十分重要的,当我们处理一些业务或者项目时,几乎都在使用模块,里面有自己创建的模块也有许多系统自带的模块我们可以直接进行调用的模块;通过模块可以更快速与便捷的帮我们实现项目需求。
1、模块
————我们需要先了解模块是什么,再去说模块是如何使用的。模块就是一个Python文件,而每个后缀为.py的文件就是一个模块,我们可以通过import进行调用;当我们调用一个模块时,我们便可以使用模块中配置的方法,就无需自己再敲一遍重复的代码了;
1.1 自定义模块
基本操作:
def add(a, b): return a + bdef multiply(a, b): return a * bdef subtract(a, b): return a - bdef divide(a, b): return a / b
import module#调用module模块func = module.add(1, 2)print(func)#调用molude模块中的add函数结果为3func1 =module.divide(6, 2)print(int(func1))#调用molude模块中的divide函数结果为3func2 = module.subtract(7,6)print(func2)#调用molude模块中的subtract函数结果为1func3 = module.multiply(5, 9)print(func3)#调用molude模块中的multiply函数结果为45
实际案例:快速在另一个Python文件中调用另一个文件的信息
my_dict = { \'brand\': \'Maserati\', \'master\': \'张总\', \'color\': \'blood\', \'speed\': 150}def get_info(key): if key in my_dict: return my_dict[key] else: return \'Key not found in the dictionary\'print(get_info(\'brand\'))print(get_info(\'master\'))print(get_info(\'color\'))print(get_info(\'speed\'))
import moduleprint(module.my_dict)#调用molude模块中的my_dict字典输出{\'brand\': \'Maserati\', \'master\': \'张总\', \'color\': \'blood\', \'speed\': 150}
————从上面能明显感觉到代码量只用一行代码就调用到了module的方法,只要在另一个文件代码写好,其方法我们都是可以进行调用的;同理也可以进行套娃,01文件调用02文件,02调用03文件等,其灵活度根据自己的需求来实现;
1.2 系统自带模块
————其实在我们使用Python中我们更多的使用系统自带的模块,系统自带的模块都是前人栽树后人乘凉,在此特别感谢那些源码开发大佬;系统自带的模块也有许多,这里提及几个常用的系统自带的模块来进行使用。模块里面有许多的API方法,通过自己的熟能生巧多多练习;
1.2.1 os模块
实例操作:
import os#获取操作系统信息.environ#获取计算机名.getcomputer_name = os.environprint(computer_name)import sockethostname = socket.gethostname()ip_address = socket.gethostbyname(hostname)print(f\'计算机名:{hostname},IP地址:{ip_address}\')#获取计算机名与IP地址
————通过系统的os模块可以对文件进操作,例如创建文件删除文件 ,以及获取操作系统的信息,以及socket模块我们可以获取到我们电脑的IP地址与计算机名(这里注意如果自己改过自己的计算机名,显示的是计算机更改后的名字而非原有名字)
1.2.2 datetime与time模块
import datetimeimport timeif __name__ == \'__main__\': now = datetime.datetime.now() print(now)#获取当前时间 print(now.year)#获取当前年份 print(now.month)#获取当前月份 print(now.day)#获取当前日 print(now.hour)#获取当前小时 print(now.minute)#获取当前分钟 print(now.second)#获取当前秒 print(now.microsecond)#获取当前毫秒 print(now.weekday())#获取当前星期几 print(now.isoweekday())#获取当前星期几 print(now.isocalendar()) print(now.timestamp()) time_stamp = time.time() time_obj = time.localtime(time_stamp) print(time.strftime(\'%Y-%m-%d %H:%M:%S\', time_obj))#输出:2025-07-18 17:27:42.018445#2025#7#18#17#27#42#18445#4#5#datetime.IsoCalendarDate(year=2025, week=29, weekday=5)#1752830862.018445#2025-07-18 17:27:42
1.2.3 random模块
import randomif __name__ == \'__main__\': #设置随机种子,使得每次生成的随机数相同 print(random.randint(1, 10))#1-10的随机数 print(random.randrange(1, 10)) print(random.uniform(1, 10)) print(random.choice([1, 2, 3, 4, 5])) print(random.sample([1, 2, 3, 4, 5], 4))#随机从列表中获取4个元素 l =[1, 2, 3, 4, 5] print(random.shuffle(l))#随机打乱列表 print(l) print(random.random())#0-1的随机数输出:4#7#6.030821470492999#1#[5, 3, 2, 1]#None#[2, 4, 5, 3, 1]#0.08181121252105195
————以上就是常见的系统模块,可以直接调用来使用还有一些系统的模块,需要下载使用;瞎下载方法参考第二期文章;里面详解了如何使用终端去下载我们需要的模块;
2、包
2.1第三方模块
————由社区或者公司开发,通过包管理的工具进行安装,当然也可以在开发软件内安装,用于实现更多的功能;
2.1.1numpy模块:一般用于数值计算
实例操作(API方法):
import numpy as npif __name__ == \'__main__\': #创建一个数组对象 np1 = np.array([1,2,3,4,5])#创建一个数组对象 print(type(np1),np1)#数组对象 print(np1.dtype)#数据类型 dimensionalArray = np1#一维数组 print(dimensionalArray)#获取维度 print(dimensionalArray.ndim) dimensionalArray1 = np.array([[1,2,3],[4,5,6]])#二维数组 print(dimensionalArray1) print(dimensionalArray1.ndim) array1 = np.ones(shape=(3,3),dtype=\'i1\',order=\'C\')#创建一个全为1的数组 print(array1)输出: [1 2 3 4 5]int64[1 2 3 4 5]1[[1 2 3] [4 5 6]]2[[1 1 1] [1 1 1] [1 1 1]]
2.1.2 pandas模块:一般用于数据分析与清理
import pandasif __name__ == \'__main__\': # 创建DataFrame data = { \'name\': [\'Braund\', \'Cummings\', \'Heikkinen\', \'Allen\', \'Moran\', \'Palsson\', \'Johnson\', \'Nasser\', \'Sandstrom\', \'Bonnell\'], \'age\': [22, 38, 26, 35, 35, 54, 54, 22, 22, 35], \'sex\': [\'M\', \'F\', \'F\', \'M\', \'F\', \'M\', \'M\', \'F\', \'M\', \'F\']#创建数据 } df = pandas.DataFrame(data)#创建DataFrame df.to_csv(\'data.csv\', index=False)#保存为csv文件 print(\'csv文件已生成\')#生成csv文件 data1 = pandas.Index([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) print(\'data1=\',data1)#创建索引 data2 = pandas.__version__#获取pandas版本 print(\'data2=\',data2)输出:D:\\Users\\Anaconda\\envs\\env2025708\\python.exe D:\\Python学习\\10.更新周五\\08.pandas.py csv文件已生成data1= Index([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], dtype=\'int64\')data2= 2.2.3
————在csv文件的数据如下
name,age,sexBraund,22,MCummings,38,FHeikkinen,26,FAllen,35,MMoran,35,FPalsson,54,MJohnson,54,MNasser,22,FSandstrom,22,MBonnell,35,F
2.1.3requests模块:一般用于Http的请求处理,爬取网页信息等
————不宜展示,详细内容参考其他博主;
3、导入
————一般用import和from --import导入,通过导入我们可以直接调用我们需要的父类函数,模块,方法等;总之就是十分方便就对了。
导入方法:
# 同模块的导入规则 import 包名 [as 包别名] import 包名.模块名 [as 模块新名] import 包名.子包名.模块名 [as 模块新名] from 包名 import 模块名 [as 模块新名] from 包名.子包名 import 模块名 [as 模块新名] from 包名.子包名.模块名 import 属性名 [as 属性新名] # 导入包内的所有子包和模块 from 包名 import * from 包名.模块名 import *
总结:今天总点讲解了Python中模块化的基本概念和使用方法。介绍了每个模块的定义 和使用的方法,通过import调用并利用模块来实现一些简单的API操作,演示了如何创建自定义模块并使用其中的函数。接着列举了常用系统模块:os模块用于文件操作和系统信息获取,datetime模块处理时间日期,random模块生成随机数。介绍了第三方模块如numpy(数值计算)、pandas(数据分析)的基本用法。最后说明了多种导入模块的方法,包括import、from...import等语法。