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

news2025/2/25 21:36:06

个人主页:天寒雨落的博客_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()中代码的执行时间。

代码

import timeit
def myFun():
    sum = 0
    for i in range(1,100):
        for j in range(1,100):
            sum = sum + i * j
t1 = timeit.timeit(stmt=myFun,number=1000)            
print("t1:",t1)
t2 = timeit.repeat(stmt=myFun,number=1000, repeat=6) 
print("t2:",t2)

执行结果

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

举例

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

代码

import zlib
str = b'python,python,python'
print("压缩前: %s,字符个数%d."%(str,len(str)))
str_com = zlib.compress(str)
print("压缩后: %s, 字符个数%d."%(str_com,len(str_com)))
str_dec = zlib.decompress(str_com)
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绘制表面填充正方体

代码实现

import turtle           		#导入模块.
#画正方体正面.
n = 100                         	#正方体边长.
turtle.penup()
turtle.goto(-100,-50)
turtle.pendown()
turtle.pencolor('red')      	#画笔颜色为红色.
turtle.begin_fill()
turtle.fillcolor('red')     	#填充颜色为红色.
for i in range(4):
    turtle.forward(n)
    turtle.left(90)
turtle.end_fill()
#画正方体顶面.
turtle.penup()
turtle.goto(-100,n-50)
turtle.pendown()
turtle.pencolor('green')    	#画笔颜色为绿色.
turtle.begin_fill()
turtle.fillcolor('green')  	#填充颜色为绿色.
turtle.left(45)
turtle.forward(int(n * 0.6)) 	#倾斜边长为60.
turtle.right(45)
turtle.forward(n)
turtle.left(360 - 135)
turtle.forward(int(n * 0.6)) 	#倾斜边长为60.
turtle.end_fill()
#画正方体右侧面.
turtle.left(45)
turtle.penup()
turtle.goto(n-100,-50)
turtle.pendown()
turtle.pencolor('blue')      	#画笔颜色为蓝色.
turtle.begin_fill()
turtle.fillcolor('blue')   	#填充颜色为蓝色.
turtle.left(135)
turtle.forward(int(n * 0.6)) 	#倾斜边长为60.
turtle.left(45)
turtle.forward(n)
turtle.left(135)
turtle.forward(int(n * 0.6)) 	#倾斜边长为60.
turtle.right(90)
turtle.end_fill()
turtle.done()

执行结果

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

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

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

相关文章

用DIV+CSS技术设计的凤阳旅游网站(web前端网页制作课作业)HTML+CSS+JavaScript

👨‍🎓学生HTML静态网页基础水平制作👩‍🎓,页面排版干净简洁。使用HTMLCSS页面布局设计,web大学生网页设计作业源码,这是一个不错的旅游网页制作,画面精明,排版整洁,内容…

Android App开发语音处理之系统自带的语音引擎、文字转语音、语音识别的讲解及实战(超详细 附源码)

需要源码请点赞关注收藏后评论区留下QQ~~~ 一、系统自带的语音引擎 语音播报的本质是将书面文字转换成自然语言的音频流,这个转换操作被称作语音合成,又称TTS(从文本到语音)在转换过程中,为了避免机械合成的呆板和停顿…

一款客服系统有哪些必备的功能模块?

为了提升客户服务质量,和客户更好地进行沟通,越来越多的企业配置了客服系统。那一款优秀的客服系统需要配置哪些功能模块呢? 1、支持多渠道接入 新媒体的快速发展使得企业有机会通过更多的渠道和客户进行联系,比如公众号、微博、…

java环境安装与配置

这篇文章只是为了以后我配置环境方便而写 1,点击网址,进入Oracle官网 然后参照Java JDK下载安装及环境配置超详细图文教程 2,安装之后如果目录里没有jre文件夹 参考Jdk中没有jre文件夹怎么办? ①简单点就是,管理员模式…

京东零售大数据云原生平台化实践

分享嘉宾:吴维伟 京东 架构工程师 编辑整理:陈妃君 深圳大学 出品社区:DataFun 导读:随着业务调整和集群资源整合需求,大数据系统中集群数据迁移复杂混乱。本文将以京东大数据平台为例,介绍京东近一年在数…

HTML+CSS+JS制作一个迅雷看看电影网页设计实例 ,排版整洁,内容丰富,主题鲜明,简单的网页制作期末作业

HTML实例网页代码, 本实例适合于初学HTML的同学。该实例里面有设置了css的样式设置,有div的样式格局,这个实例比较全面,有助于同学的学习,本文将介绍如何通过从头开始设计个人网站并将其转换为代码的过程来实践设计。 文章目录一、网页介绍一…

FreeCAD二次开发-基于PyQT对话框与FC交互的开发

版本 FreeCAD0.18.2+PyCharm Community 2020.3.3 演示效果 环境搭建步骤 1.先安装好FreeCAD和PyCharm 2.添加环境变量 点击确定,全部关掉。 3.测试变量是否生效(CMD打开控制台,输入python回车) 弹出如下,说明可以进入FreeCAD自带的python解释器 4.创建工作台Workbench(…

Bridge Champ:Jelurida实践PlaytoOwn的Web 3社交游戏

Play-to-Own 为什么能引领Web3游戏 Web 3游戏将进入“Play-to-Own”的游戏新时代。解锁游戏中的经济活动将极大地扩大游戏产业的TAM,并加速价值创造。 以Axie Infinity为例,Axie普及了P2E模式,其DAU从2021年初的1万增长到峰值的300万&#…

基于遗传算法的微电网经济运行优化matlab程序

基于遗传算法的微电网经济运行优化matlab程序 摘 要: 微电网作为智能电网的一部分,是分布式电源接入电网的一种有效手段,微电网经济运行是其中一个重要研究方面。考察微电网经济性,通常是从最小运行成本和最小环境污染物排放成本两方面入手进…

Git clone时报错: OpenSSL SSL_read: Connection was reset, errno 10054

有段时间没有在GitHub上clone代码了,今天git clone: https://github.com/xxxxxx 居然直接给我抛出了错误: GitHub clone时,报错:Connection was reset, errno 10054 咦?这是什么鬼?然后想起以前clone时用的git地址…

[附源码]Python计算机毕业设计高校党建信息平台

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

秒杀微服务实现抢购代金券功能

文章目录需求分析秒杀场景的解决方案数据库表设计代金券表抢购活动表订单表创建秒杀服务pom依赖配置文件关系型数据库实现代金券秒杀相关实体引入抢购代金券活动信息代金券订单信息Rest配置类全局异常处理添加代金券秒杀活动代金券活动实体代金券活动Mapper->SeckillVoucher…

【技术分享】Python脚本实现BJTU校园网自动登录

文章目录1.背景介绍2.登录分析3.代码分析4.源代码1.背景介绍 BJTU的校园网连接好以后需要输入账号和密码才能正确登录,如下图所示。整个流程比较繁琐,尤其是很多服务器、工作站是无图形化的系统,大部分时间需要SSH连接,所以通过界…

【Rust 日报】2022-11-25 Rust 真的要上天了!

Rust 真的要上天了!Gama 将发射太阳帆宇宙飞船,并且是公开将 Rust 送入太空的公司之一。是的,我们在太空中!详情:https://twitter.com/AeroRust/status/1596052251650686976Redox OS 0.8.0 现已发布!自从 0…

【POJ No. 2352】数星星 Stars

【POJ No. 2352】数星星 Stars 北大OJ 题目地址 【题意】 星星由平面上的点表示,星星的等级为纵横坐标均不超过自己的星星数量(不包括自己)。下图中, 5号星的等级为3(纵横坐标均不超过5号星的星星有3颗:1…

Java(一)--- DOS,文档注释,代码规范

目录 一、开发注意事项 二、文档注释 1、基本格式 2、如何生成对应文档注释 三、Java代码规范 四、DOS 一、开发注意事项 Java应用程序的执行入口是main0方法。它有固定的书写格式:public static void main(Stringl] args){...}一个源文件中最多只能有一个public类。其它类…

ALU,半加器,全加器,减法电路

目录 (1)ALU(Arithmetic Logical Unit) (2)半加器(Half adder) (3)全加器(Full Adder) (5)二进制数的加法电路 (6)二进制数的减法电路 (7&…

绿色信贷数据合集(更新至2021年)

1. 2007-2021年国有大型商业银行和全国股份制商业银行绿色信贷数据 1、数据来源:公司年报和可持续发展报告以及社会责任报告 2、时间跨度:2007-2021年 3、区域范围:36家国有大型商业银行和全国股份制商业银行 4、指标说明: 包…

Linux线程安全

目录 一.Linux线程互斥 1.1互斥相关概念 1.2互斥量mutex 1.3互斥量接口 1.4互斥量原理 二.可重入与线程安全 三.常见锁的概念 四. Linux线程同步 4.1同步概念与竞态条件 4.2条件变量 一.Linux线程互斥 1.1互斥相关概念 临界资源:多线程执行流共享的资源就…

Head First设计模式(阅读笔记)-05.单例模式

巧克力工厂 巧克力工厂需要将牛奶和巧克力混合,因此需要一个巧克力锅炉,具体代码如下: public class ChocolateBoiler{private boolean empty; // 判断是否为空private boolean boiled; // 判断是否煮沸public ChocolateBoiler(){ // 刚开…