首页>>后端>>Python->python有多少内置模块

python有多少内置模块

时间:2023-12-02 本站 点击:0

导读:本篇文章首席CTO笔记来给大家介绍有关python有多少内置模块的相关内容,希望对大家有所帮助,一起来看看吧。

本文目录一览:

1、python有哪些模块2、python自带性能强悍的标准库 itertools3、二级Python----Python的内置函数及标准库(DAY 8)4、Python强大的内置模块collections-5、python目前三方提供的可用编程模块函数库组件规模有多大6、python内置模块和第三方模块和自定义模块的顺序

python有哪些模块

Python是一门非常高级的编程语言,内置了许多标准模块,比如:sys、os、datetime等。

os模块

os.getcwd() # 获取当前工作目录,即当前python脚本工作的目录路径

os.chdir("dirname") # 改变当前脚本工作目录;相当于shell下cd

os.curdir # 返回当前目录: ('.')

os.pardir # 获取当前目录的父目录字符串名:('..')

os.makedirs('dirname1/dirname2') # 可生成多层递归目录

os.removedirs('dirname1') # 若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推

os.mkdir('dirname') # 生成单级目录;相当于shell中mkdir dirname

os.rmdir('dirname') # # 删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname

os.listdir('dirname') # 列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印

os.remove() # 删除一个文件

os.rename("oldname","newname") # 重命名文件/目录

os.stat('path/filename') # 获取文件/目录信息

os.sep # 输出操作系统特定的路径分隔符,win下为"\\",Linux下为"/"

os.linesep # 输出当前平台使用的行终止符,win下为"\t\n",Linux下为"\n"

os.pathsep # 输出用于分割文件路径的字符串 win下为;,Linux下为:

os.name # 输出字符串指示当前使用平台。win-'nt'; Linux-'posix'

os.system("bash command") # 运行shell命令,直接显示

os.environ # 获取系统环境变量

os.path.abspath(path) # 返回path规范化的绝对路径

os.path.split(path) # 将path分割成目录和文件名二元组返回

os.path.dirname(path) # 返回path的目录。其实就是os.path.split(path)的第一个元素

os.path.basename(path) #

返回path最后的文件名。如何path以/或\结尾,那么就会返回空值。即os.path.split(path)的第二个元素

os.path.exists(path) # 如果path存在,返回True;如果path不存在,返回False

os.path.isabs(path) # 如果path是绝对路径,返回True

os.path.isfile(path) # 如果path是一个存在的文件,返回True。否则返回False

os.path.isdir(path) # 如果path是一个存在的目录,则返回True。否则返回False

os.path.join(path1[, path2[, ...]]) # 将多个路径组合后返回,第一个绝对路径之前的参数将被忽略

os.path.getatime(path) # 返回path所指向的文件或者目录的最后访问时间

os.path.getmtime(path) # 返回path所指向的文件或者目录的最后修改时间

os.path.getsize(path) # 返回path的大小

sys模块

sys.argv # 命令行参数List,第一个元素是程序本身路径

sys.exit(n) # 退出程序,正常退出时exit(0)

sys.version # 获取Python解释程序的版本信息

sys.maxint # 最大的Int值

sys.path # 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值

sys.platform # 返回操作系统平台名称

datetime模块

datetime.today()返回一个表示当前本期日期时间的datetime对象

datetime.now([tz])返回指定时区日期时间的datetime对象,如果不指定tz参数则结果同上

datetime.utcnow()返回当前utc日期时间的datetime对象

datetime.fromtimestamp(timestamp[, tz])根据指定的时间戳创建一个datetime对象

datetime.utcfromtimestamp(timestamp)根据指定的时间戳创建一个datetime对象

datetime.strptime(date_str, format)将时间字符串转换为datetime对象

python自带性能强悍的标准库 itertools

可迭代对象就像密闭容器里的水,有货倒不出

itertools是python内置的标准模块,提供了很多简洁又高效的专用功能,使用得当能够极大的简化代码行数,同时所有方法都是实现了生成器函数,这就意味着极大的节省内存。

itertools提供的功能主要分为三大块,以最新版本的3.10为例:

方法如下:

导入包

iteratortools.count(start=0, step=1)

数值生成器,可以指定起始位置和步长,并且步长可以为浮点数。无限输出,一直累加,在例子中需要边睡眠1s边输出。

iteratortools.cycle(iteratorable)

无限循环取出可迭代对象里的元素

iteratortools.repeat(object[, times])

不断重复输出整个object,如果指定了重复次数,则输出指定次数,否则将无限重复。

iteratortools.accumulate(iteratorable[, func, *, initial=None])

返回对列表中元素逐项的操作,操作有:

iteratortools.chain(*iteratorables)

将多个可迭代对象构建成一个新的可迭代对象,统一返回。类似于将多个对象链成一条串

优点:可以将多个可迭代对象整合成一个,避免逐个取值

chain.from_iteratorable(iteratorable)

将一个迭代对象中将所有元素类似于chain一样,统一返回。

iteratortools.compress(data, selectors)

按照真值表筛选元素

iteratortools.dropwhile(predicate, iteratorable)

按照条件筛选,丢弃掉第一次不符合条件时之前的所有元素

iteratortools.takewhile(predicate, iteratorable)

根据predicate条件筛选可迭代对象中的元素,只要元素为真就返回,第一次遇到不符合的条件就退出。

按照条件筛选,丢弃第一次遇到不符合条件之后的元素。行为类似于上一个dropwhile,区别在于丢弃的选择不同。

iteratortools.filterfalse(predicate, iteratorable)

保留不符合条件的元素,返回迭代器

iteratortools.groupby(iteratorable, key=None)

按照指定的条件分类。输出条件和符合条件的元素

iteratortools.islice(iteratorable, start, stop[, step])

对迭代器进行切片,老版本中不能指定start和stop以及步长,新版本可以。

iteratortools.starmap(function, iteratorable)

将function作用于可迭代对象上,类似于map函数

iteratortools.tee(iteratorable, n=2)

从一个可迭代对象中返回 n 个独立的迭代器

iteratortools.zip_longest(*iteratorables, fillvalue=None)

创建一个迭代器,从每个可迭代对象中收集元素。如果可迭代对象的长度未对齐,将根据 fillvalue 填充缺失值。

迭代持续到耗光最长的可迭代对象。大致相当于:

iteratortools.product(*iteratorables, repeat=1)

生成多个可迭代对象的笛卡尔积

大致相当于生成器表达式中的嵌套循环。例如, product(A, B) 和 ((x,y) for x in A for y in B) 返回结果一样。

将可选参数 repeat 设定为要重复的次数。例如,product(A, repeat=4) 和 product(A, A, A, A) 是一样的

iteratortools.permutations(iteratorable, r=None)

由 iteratorable 元素生成长度为 r 的排列。元素的排列,类似于给一个[1,2,3],选取其中两个元素,一共有多少种组合方法?不要求元素排列之后的位置。

这个方法能够完美解决算法中的全排列问题,简直是量身定做。如果早知道这么简单,当年考算法也不会。。,哎

可参见leetcode46题:

iteratortools.combinations(iteratorable, r)

返回由输入 iteratorable 中元素组成长度为 r 的子序列。元素不可重复使用。子序列是要求元素在排列之后和之前的相对位置不变的。1,2,3中3在1的后面,子序列中3也一定在1的后面。

这个方法可以曲线解决组合总数问题

iteratortools.combinations_with_replacement(iteratorable, r)

返回由输入 iteratorable 中元素组成的长度为 r 的子序列,允许每个元素可重复出现

原文

二级Python----Python的内置函数及标准库(DAY 8)

python的内置函数(68个)

Python考核31个内置函数,

python内置了很多内置函数、类方法属性及各种模块。当我们想要当我们想要了解某种类型有哪些属性方法以及每种方法该怎么使用时,我们可以使用dir()函数和help()函数在python idle交互式模式下获得我们想要的信息。

• dir()函数获得对象中可用属性的列表

Python中的关键词有哪些?

dir(__builtins__):查看python内置函数

help(‘keywords‘):查看python关键词

如微分积分方程的求解程序、访问互联网、获取日期和时间、机器学习算法等。这些程序往往被收入程序库中,构成程序库。

只有经过严格检验的程序才能放在程序库里。检验,就是对程序作充分的测试。通常进行的有正确性测试、精度测试、速度测试、边界条件和出错状态的测试。经过检验的程序不但能保证计算结果的正确性,而且对错误调用也能作出反应。程序库中的程序都是规范化的。所谓规范化有三重含义:①同一库里所有程序的格式是统一的;② 对这些程序的调用方法是相同的;③ 每个程序所需参数的数目、顺序和类型都是严格规定好的。

Python的库包含标准库和第三方库

标准库:程序语言自身拥有的库,可以直接使用。help('modules')

第三方库:第三方者使用该语言提供的程序库。

标准库: turtle 库(必选)、 random 库(必选)、 time 库(可选)。

• turtle 库:图形绘制库

原理如同控制一只海龟,以不同的方向和速度进行位移而得到其运动轨迹。

使用模块的帮助时,需要先将模块导入。

例如:在IDLE中输入import turtle

dir(turtle)

help(turtle.**)

1.画布

画布就是turtle为我们展开用于绘图区域, 我们可以设置它的大小和初始位置。

setup()方法用于初始化画布窗口大小和位置,参数包括画布窗口宽、画布窗口高、窗口在屏幕的水平起始位置和窗口在屏幕的垂直起始位置。

参数:width, height: 输入宽和高为整数时,表示 像素 ;为小数时,表示占据电脑屏幕的比例。(startx,starty):这一坐标表示

矩形窗口左上角顶点的位置,如果为空,则窗口位于屏幕中心:

例如:setup(640,480,300,300)表示在桌面屏幕(300,300)位置开始创建640×480大小的画布窗体。

2、画笔

• color() 用于设置或返回画笔颜色和填充颜色。

例如:color(‘red’)将颜色设为红色,也可用fillcolor()方法设置或返回填充颜色,或用pencolor()方法设置或返回笔触颜色。

Python强大的内置模块collections-

collections 是 Python 的一个内置模块,所谓内置模块的意思是指 Python 内部封装好的模块,无需安装即可直接使用。

Python 提供了很多非常好用的基本类型,比如不可变类型 tuple,我们可以轻松地用它来表示一个二元向量。

namedtuple 是一个函数,它用来创建一个自定义的 tuple 对象,并且规定了 tuple 元素的个数,并可以用属性而不是索引来引用 tuple 的某个元素。

如此一来,我们用 namedtuple 可以很方便地定义一种数据类型,它具备 tuple 的不变性,又可以根据属性来引用,使用十分方便。

本示例中我们使用了一个三维坐标 x,y,z 来定义一个 tuple 对象,对象元素有3个,然后通过坐标值来引用相应的值即可。

deque是栈和队列的一种广义实现,deque是 "double-end queue" 的简称;

deque支持线程安全、有效内存地以近似O(1)的性能在 deque 的两端插入和删除元素,尽管 list 也支持相似的操作,但是它主要在固定长度操作上的优化,从而在 pop(0) 和 insert(0,v)(会改变数据的位置和大小)上有O(n)的时间复杂度。

在数据结构中,我们知道队列和堆栈是两个非常重要的数据类型,一个先进先出,一个后进先出。

在 python 中,使用 list 存储数据时,按索引访问元素很快,但是插入和删除元素就很慢,因为 list 是线性存储,数据量大的时候,插入和删除效率很低。

deque是为了高效实现插入和删除操作的双向链表结构,非常适合实现队列和堆栈这样的数据结构。

defaultdict是内置数据类型 dict 的一个子类,基本功能与 dict 一样,只是重写了一个方法__missing__(key)和增加了一个可写的对象变量 default_factory。

使用 dict 字典类型时,如果引用的 key 不存在,就会抛出 KeyError。如果希望 Key 不存在时,返回一个默认值,就可以用 defaultdict。

OrderedDict类似于正常的词典,只是它记住了元素插入的顺序,当在有序的词典上迭代时,返回的元素就是它们第一次添加的顺序。这样 dict 就是一个有序的字典。

使用 dict 时,key 是无序的。在对 dict 做迭代时,我们无法确定 key 的顺序。但是如果想要保持 key 的顺序,可以用 OrderedDict。

python目前三方提供的可用编程模块函数库组件规模有多大

C++,Java和Python是竞争性编程的三种最常见的语言。在本文中,我们将从竞争性编程和面试准备的角度重点介绍最重要的Python模块。

list:动态大小的数组,允许在不关心数组大小的情况下进行插入和删除。它还具有普通数组的优点,例如随机访问和缓存友好性。list也可以用作队列和堆栈。

deque:Dequeue支持在O(1)时间内在两端进行插入和删除。由于它是使用数组实现的,因此它也允许随机访问。我们可以使用dequeue来实现队列和堆栈。关于Deque的示例问题是,访问所有的汽油泵和所有大小为k的子阵列的最大值。

请注意,Python中没有用于队列(Queue)和堆栈(Stack)的模块。我们可以使用列表(list)或双端队列(deque)来实现这些。首选双端队列(deque)实现,尤其是对于队列,因为在列表前面进行插入/删除很慢。

在我们希望具有FIFO项目顺序的情况下,队列(Queue)很有用。问题示例包括:用给定的数字生成数字,流中的第一个非重复字符,树及其变体的级序遍历,图的BFS及其变体。

set和dict:它们都实现了哈希。当我们有键的集合时,我们使用set。当我们有键值对时,我们使用字典(dictionary)。当我们希望快速搜索、插入和删除时非常有用(这三个操作都是O(1))。这是业界使用最多的数据结构之一,也是学术界最低估的数据结构之一。常见的问题有:离散元素的计数、数组项的频率、零和子阵、两个未排序数组的并集、交集等。

heapq:默认情况下实现Min Heap。我们也可以创建最小堆。只要我们希望有效地找到最小或最大元素,就使用它。它用于实现流行的算法,例如Prim算法,Dijkstra最短路径,霍夫曼编码,K个最大元素,购买和合并K个排序数组的最大玩具,流的中位数。

sorted:对列表等序列进行排序。基于排序的示例问题包括:合并重叠间隔,所需的最小平台。第K个最小元素,求给定和的三元组。

bisect:用于二进制搜索。基于二进制搜索的示例问题有:查找第一次出现的索引、计数出现次数、峰值元素、两个排序数组的中值。

注意:与C++ STL和Java集合(Collections)不同。Python标准库包含自平衡BST的实现。在Python中,我们可以使用bisect模块来保留一组排序后的数据。我们还可以使用PyPi模块,例如rbtree(红黑树的实现)和pyavl(AVL树的实现)。

python内置模块和第三方模块和自定义模块的顺序

内置的模块(python解释器自带的)、第三方(开发者编写的模块)、自定义的模块。

1、先从内存中找。

2、再从内置模块中找。

3、最后从sys.path中找(环境变量)一定要分清楚谁是执行文件谁是被导入文件sys返回的是一个列表,里面放了一些文件的路径,但是第一个路径永远是文件所在的文件夹。

结语:以上就是首席CTO笔记为大家整理的关于python有多少内置模块的全部内容了,感谢您花时间阅读本站内容,希望对您有所帮助,更多关于python有多少内置模块的相关内容别忘了在本站进行查找喔。


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