• 一篇快速搞懂python模块、包和库


    个人主页:天寒雨落的博客_CSDN博客-初学者入门C语言,python,数据库领域博主
    💬 热门专栏:python_天寒雨落的博客-CSDN博客

    ​每日赠语:没有窘迫的失败,就不会有自豪的成功;失败不可怕,只要能从失败中站起来。

    目录

    ​一、概述

    1.模块

    优点

    2.包

    3.库

    4.模块、包或库的导入

    ​二、常用标准库模块

    1.turtle(绘制线条、圆及其他形状(文本)图形的模块)

    1.画布

    2.画笔

    2.random(生成随机数的模块)

    1.random.random()函数

    2.random.uniform()函数

    3.random.randint()函数

    4.random.randrange()函数

    5.random.choice()函数

    6.random.sample()函数

    7.random.shuffle()函数

    3.time(格式化日期和时间的模块)和datetime(日期和时间处理的模块)

    time模块

    datatime模块

    4.os(提供使用操作系统功能和访问文件系统简便方法的模块)

    1.获取平台信息

    2.目录、文件操作

    3.os.path模块获取文件属性

    4.调用系统命令

    5.sys(提供对Python解释器相关操作的模块)

    sys.platform

    sys.getsizeof()

    6.timeit(性能度量的模块)

    举例

     7.zlib(数据打包盒压缩的模块)

    举例

    ​三、第三方库

    1.NumPy

    np.array()函数

    2.Pandas

    pandas.Series(data,index,dtype,copy)

    pandas.DataFrame(data,index,columns,dtype,copy)

    3.SciPy

    4.Matplotlib

    5.Jieba

    6.PyInstaller

    ​四、典型案例

    代码实现

    执行结果


    一、概述

    1.模块

    在Python中,模块是一个以.py 结尾的Python文件,包含了 Python 对象和语句。

    优点

    • 方便组织代码。
    • 提高代码的可维护性。
    • 增加代码的重用性。
    • 避免函数名和变量名冲突。

    2.包

    Python模块文件所在的目录,并且在该目录下必须有一个名为_init_.py的文件(Python3.3之前必须,之后不是必须)

    3.库

    具有相关功能的包和模块集合,如Python标准库、NumPy库等。

    4.模块、包或库的导入

    • 导入整个模块模块、包和库。格式为:import模块名 [as 别名]
    • 导入单个对象。格式为:from模块名import对象 [as 别名]
    • 导入多个对象。格式为:from模块名import对象1,对象2, …。
    • 导入全部对象。格式为:from模块名import *

    二、常用标准库模块

    1.turtle(绘制线条、圆及其他形状(文本)图形的模块)

    turtle是Python内嵌的绘制线、圆及其他形状(包括文本)的图形模块。

    1.画布

    画布是turtle模块展开用于绘图的区域。

    turtle.screensize()函数:设置画布。一般格式:turtle.screensize(width,height,bg)。

    参数对应的分别是宽,高,背景颜色。

    turtle.setup()函数:设置画布。一般格式:turtle.setup(width,height,startx,starty)。

    参数对应的分别是宽,高,画布左上角顶点在窗口的坐标位置。

    2.画笔

    (1)画笔状态:turtle模块绘图使用位置方向描述画笔的状态。

    (2)画笔属性:画笔的属性包括画笔的颜色、宽度和移动速度等。

    • turtle.pensize(width):设置画笔宽度width,数字越大,画笔越宽。
    • turtle.pencolor(color):设置画笔颜色color,可以是字符串如"red"、"yellow",或RGB格式。
    • turtle.speed(speed):设置画笔移动速度speed,范围为[0,10]的整数,数字越大,画笔移动的速度越快。

    (3)绘图命令:操纵turtle模块绘图有许多命令,通过相应函数完成。绘图命令通常分为三类:画笔运动命令、画笔控制命令全局控制命令

    2.random(生成随机数的模块)

    1.random.random()函数

    用于生成一个[0, 1)之间的随机浮点数。

    2.random.uniform()函数

    用于生成一个指定范围内的随机浮点数。一般格式为:random.uniform(a,b)

    3.random.randint()函数

    用于生成一个指定范围内的整数。一般格式为:random.randint(a,b)

    4.random.randrange()函数

    用于生成指定范围、指定步长的随机整数。一般格式为:random.randrange([start],stop[,step])

    5.random.choice()函数

    从序列对象中获取一个随机元素。一般格式为:random.choice(sequence)

    6.random.sample()函数

    从指定序列对象中随机获取指定长度的片段。一般格式为:random.sample(sequence,k)

    7.random.shuffle()函数

    用于将一个序列对象中的元素打乱。一般格式为:random.shuffle(sequence[,random])

    3.time(格式化日期和时间的模块)和datetime(日期和时间处理的模块)

    time模块

    主要用于时间访问和转换,提供了各种与时间相关的函数。

    datatime模块

    date类

    from datetime import date
    

    date类为日期类。

    创建一个date对象的一般格式为:d = datetime.date(year,month,day)

    time类

    from datetime import time  

    time类为时间类。

    创建一个time对象的一般格式为:t = time(hour,[minute[,second,[microsecond[,tzinfo]]]])

    datetime类

    from datetime import datetime  

    datetime类为日期时间类。

    一般格式为:dt = datetime(year,month,day,hour,minute,second,microsecond,tzinfo)

    4.os(提供使用操作系统功能和访问文件系统简便方法的模块)

    1.获取平台信息

    使用os模块的一些属性和方法可以获取系统平台的相关信息。

    方法

    功能说明

    os.getcwd()

    获取当前工作目录

    os.listdir(path)

    获取path目录下的文件和目录列表

    os.environ

    包含系统环境变量和值的字典

    os.name

    查看当前系统平台

    os.extsep

    当前操作系统所使用的文件扩展名分隔符

    os.sep

    当前操作系统所使用的路径分隔符

    os.pathsep

    查看用于分割文件路径的字符串

    os.linesep

    查看当前平台使用的行终结符

    os.get_exec_path()

    返回可执行文件的搜索路径

    2.目录、文件操作

    方法

    功能说明

    os.chdir(path)

    把path设为当前工作目录

    os.mkdir(newdir)

    创建新目录newdir

    os.rmdir(dir)

    删除目录dir

    os.listdir(path)

    列出指定目录path下所有文件

    os.curdir

    当前文件夹

    os.remove(path)

    删除指定的文件,要求用户拥有删除文件的权限,并且文件没有只读或其他特殊属性

    os.rename(src, dst)

    重命名文件或目录,可以实现文件的移动,若目标文件已存在则抛出异常,不能跨越磁盘或分区

    os.replace(old, new)

    重命名文件或目录,若目标文件已存在则直接覆盖,不能跨越磁盘或分区

    os.scandir(path='.')

    返回包含指定文件夹中所有DirEntry对象的迭代对象,遍历文件夹时比listdir()更加高效

    os.startfile(filepath [, operation])

    使用关联的应用程序打开指定文件或启动指定应用程序

    3.os.path模块获取文件属性

    方法

    功能说明

    os.path.abspath(path)

    返回给定路径的绝对路径

    os.path.basename(path)

    返回指定路径的最后一个组成部分(即文件名)

    os.path.commonpath(paths)

    返回给定的多个路径的最长公共路径

    os.path.commonprefix(paths)

    返回给定的多个路径的最长公共前缀

    os.path.dirname(p)

    返回给定路径的文件夹部分

    os.path.exists(path)

    判断文件是否存在

    os.path.getatime(filename)

    返回文件的最后访问时间

    os.path.getctime(filename)

    返回文件的创建时间

    os.path.getmtime(filename)

    返回文件的最后修改时间

    os.path.getsize(filename)

    返回文件的大小

    4.调用系统命令

    1. os.popen(cmd[, mode[, bufsize]]):用于由一个命令打开一个管道。
    2. os.system(shell):运行shell命令。

    5.sys(提供对Python解释器相关操作的模块)

    “sys”即“system”,“系统”之意。该模块提供了一些接口,用于访问 Python 解释器自身使用和维护的变量,同时模块中还提供了一部分函数,可以与解释器进行比较深度的交互。

    sys.platform

    可以得到关于运行平台更详细的信息。

    sys.getsizeof()

    返回的是作用对象所占用的字节数。

    sys.exit(arg)

    退出程序机制

    6.timeit(性能度量的模块)

    举例

    测试函数myFun()中代码的执行时间。

    代码

    1. import timeit
    2. def myFun():
    3. sum = 0
    4. for i in range(1,100):
    5. for j in range(1,100):
    6. sum = sum + i * j
    7. t1 = timeit.timeit(stmt=myFun,number=1000)
    8. print("t1:",t1)
    9. t2 = timeit.repeat(stmt=myFun,number=1000, repeat=6)
    10. print("t2:",t2)

    执行结果

     7.zlib(数据打包盒压缩的模块)

    举例

    使用zlib模块对字符串进行压缩和解压缩。

    代码

    1. import zlib
    2. str = b'python,python,python'
    3. print("压缩前: %s,字符个数%d."%(str,len(str)))
    4. str_com = zlib.compress(str)
    5. print("压缩后: %s, 字符个数%d."%(str_com,len(str_com)))
    6. str_dec = zlib.decompress(str_com)
    7. print("解压后: %s, 字符个数%d."%(str_dec,len(str_dec)))

    执行结果

    三、第三方库

    1.NumPy

    NumPy是基于Python的一种开源数值计算第三方库,它支持高维数组运算、大型矩阵处理、矢量运算、线性代数运算、随机数生成等功能。

    np.array()函数

    一般格式为:numpy.array(object,dtype=None,copy=True,order=None,subok=False,ndmin=0)

    • object为数组或嵌套的数列。
    •  dtype为数组元素的数据类型。
    •  copy指定对象是否需要复制。
    •  order为创建数组的样式,C为行方向,F为列方向,A为任意方向(默认)。
    •  subok指定默认返回一个与基类类型一致的数组。
    •  ndmin为指定生成数组的最小维度。

    2.Pandas

    Pandas是基于NumPy库的一种解决数据分析任务的工具库。主要功能有:创建Series(系列)和DataFrame(数据帧)、索引选取和过滤、算术运算、数据汇总和描述性统计、数据排序和排名、处理缺失值和层次化索引等。

    pandas.Series(data,index,dtype,copy)

    能保存字符串、Bool值、数字等不同的数据类型。

    •  data:数据,采取各种形式,如ndarray、list、constants等。
    •  index:索引值,必须是唯一的和散列的。  
    • dtype:数据类型。
    •  copy:复制数据,默认为False。

    pandas.DataFrame(data,index,columns,dtype,copy)

    创建一个数据帧,数据帧是二维的表格型数据结构,即数据以行和列的表格方式排列。与系列相比,数据帧使用得更普遍。

    •  data:数据,可以是各种类型,如ndarray、series、lists、dict、  constant或DataFrame等。
    •  index,columns:分别为行标签和列标签。
    •  dtype:每列的数据类型。
    •  copy:复制数据,默认值为False。

    3.SciPy

     SciPy库是一款方便、易于使用、专为科学和工程设计的工具库,包括统计、优化、整合、线性代数、傅里叶变换、信号和图像处理、常微分方程求解等。

    •  scipy.constants(数学常量)
    •  scipy.fftpack(快速傅里叶变换)
    •  scipy.integrate(积分)  
    • scipy.optimize(优化算法)  
    • scipy.stats(统计函数)
    •  scipy.special(特殊数学函数)
    •  scipy.signal(信号处理)
    •  scipy.ndimage(N维图像)

    4.Matplotlib

    Matplotlib是一个基于Python、跨平台、交互式的2D绘图库,以各种硬拷贝格式生成出版质量级别的图形。

    5.Jieba

    中文分词是中文文本处理的一个基础步骤。  在进行中文自然语言处理时,通常需要先进行分词。现在非常流行的、开源的中文分词库是Jieba。Jieba分词算法使用基于前缀词典实现高效的词图扫描,生成句子中汉字所有可能生成词情况所构成的有向无环图(DAG);采用动态规划查找最大概率路径,找出基于词频的最大切分组合。

    6.PyInstaller

    用来打包Python应用程序。打包时,Pyinstaller库会扫描Python程序的所有文档,分析所有代码找出代码运行所需的模块,然后将所有这些模块和代码放在一个文件夹里或一个可执行文件里。  用户就不用下载各种软件运行环境,如各种版本的Python和各种不同的包,只需要执行打包好的可执行文件就可以使用软件了。

    四、典型案例

     使用turtle绘制表面填充正方体

    代码实现

    1. import turtle #导入模块.
    2. #画正方体正面.
    3. n = 100 #正方体边长.
    4. turtle.penup()
    5. turtle.goto(-100,-50)
    6. turtle.pendown()
    7. turtle.pencolor('red') #画笔颜色为红色.
    8. turtle.begin_fill()
    9. turtle.fillcolor('red') #填充颜色为红色.
    10. for i in range(4):
    11. turtle.forward(n)
    12. turtle.left(90)
    13. turtle.end_fill()
    14. #画正方体顶面.
    15. turtle.penup()
    16. turtle.goto(-100,n-50)
    17. turtle.pendown()
    18. turtle.pencolor('green') #画笔颜色为绿色.
    19. turtle.begin_fill()
    20. turtle.fillcolor('green') #填充颜色为绿色.
    21. turtle.left(45)
    22. turtle.forward(int(n * 0.6)) #倾斜边长为60.
    23. turtle.right(45)
    24. turtle.forward(n)
    25. turtle.left(360 - 135)
    26. turtle.forward(int(n * 0.6)) #倾斜边长为60.
    27. turtle.end_fill()
    28. #画正方体右侧面.
    29. turtle.left(45)
    30. turtle.penup()
    31. turtle.goto(n-100,-50)
    32. turtle.pendown()
    33. turtle.pencolor('blue') #画笔颜色为蓝色.
    34. turtle.begin_fill()
    35. turtle.fillcolor('blue') #填充颜色为蓝色.
    36. turtle.left(135)
    37. turtle.forward(int(n * 0.6)) #倾斜边长为60.
    38. turtle.left(45)
    39. turtle.forward(n)
    40. turtle.left(135)
    41. turtle.forward(int(n * 0.6)) #倾斜边长为60.
    42. turtle.right(90)
    43. turtle.end_fill()
    44. turtle.done()

    执行结果

      👍+✏️+⭐️是对博主最大的鼓励与支持!!!

  • 相关阅读:
    08-8.2.2 希尔排序
    模型机微程序控制器
    【Python笔记-设计模式】组合模式
    中国能否在元宇宙的未来发展中取得突破,占领高地?
    MD5 绕过第一式:弱比较绕过
    Purple Pi OH鸿蒙开发板7天入门OpenHarmony开源鸿蒙教程【五】
    什么是向量量化层以及向量量化层在生成模型中的作用
    Qt 拖放功能详解:理论与实践并举的深度指南
    Python爬虫从基础到入门:认识爬虫
    单机、集群和分布式
  • 原文地址:https://blog.csdn.net/m0_67388084/article/details/128061679