栈:
先进后出
创建栈:使用列表模范栈 a = []
入栈:append
出栈:pop
队列:
先进先出
import collections 导入模块
创建队:a = collection.deque()
入队:append
出队:popleft 从左往右依次出队
os.listdir(path) 以列表形式当前文件在的子目录
os.path.jion(path,paths) 拼接绝对路径
os.path.isdir(path) 判断是否为目录
模块:
定义:
在Python中一个.py文件就是一个模块
模块划分:
内置模块:无需自己定义,无需安装,可以直接导入使用,我们称之为内置模块。
自定义模块:需要自己定义py文件
第三方模块:无需定义,但是需要安装的模块,我们称之为第三方模块。
模块优点:
1.提高代码的可维护性。
2.提高代码的复用性。
3.可以引入其他模块。
4.避免函数名和变量名冲突。
模块的导入:【整体引入】
import 模块名 一次性导入多个模块,中间用逗号隔开(time,math,random,os,collections,functools)
引用模块中的函数及变量:
通过模块名.函数名(参数列表)
模块名.变量
import math
若模块名比较长的情况,为了方便调用,我们可以给模块取一个别名
语法:
import 模块名 as 别名
函数的调用以及变量的使用
别名.函数名(参数列表)
别名.变量
模块的导入:【局部引用】
from 模块名 import 函数名,类名,变量名
使用此方式引入:
引用函数以及变量的时候语法:
函数名(参数列表)
变量名
注意:
使用这种方式导入,优点方便函数调用,缺点可能引起函数名的冲突【因此使用此方式导入在给函数以及变量命名的时候要注意不要出现重名】
模块导入之:*
from 模块名 import *
函数的引用
函数名(参数列表)
变量名
注意:一般情况下,不建议使用【特别容易造成函数名变量名的冲突】
name属性:
每个模块【.py文件】都有一个内置变量_ _ name_ _,当程序在当前模块执行的时候"if name == ‘main’:" 当当前模块被其他模块引入的是它的等于该模块的模块名
一般情况下,我们会使用if name _ _ = _ _ main _ _: 来作为程序入口
包:
为了解决模块名的冲突,python引入目录来组织模块的方法,我们称之为包。
每个包目录下都会包含一个_ _ init _ .py文件,这个文件必须存在,若不存在python会将其当成一个普通目录,而不是一个包, _ init _ _.py文件可以是一个空文件,也可以有内容。
自定义模块的时候,需要注意不能跟python自带的模块冲入,自定义模块取名的时候,可以使用多个单词拼接的方式来取名。
sys模块
sys.argv 可以实现从程序外部向程序内部进行传参。
第一个参数就是该模块的模块名。
sys.path
第三方模块安装:
pip