栈与队列
栈;
特点:先进后出
mystack = []
mystack.append(1) #入栈
mystack.pop() #出栈
队列:
特点: 先进先出
import collections
queue = collections.deque([1, 2, 3, 4, 5]) #入队
print(queue.popleft()) #出队
模块:
在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里的代码就会越来越长,越来越不容易维护.
为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方式,在python中,一个.py文件就称之为一个模块(Module).
注意:取模块名的时候尽可能不要与内置函数的变量名冲突,查看[python所有内置函数] https://docs.python.org/2/library/functions.html
模块的引入:
import 模块名
sys模块
sys.argv #获取当前正在执行的命令行参数的参数列表
sys.platform #获取当前执行环境的平台
sys.path
自定模块的引用之整体引入:
import x
自定义模块的引用之局部引用:
from … import 函数名/变量名
弊端:程序内容的同名函数可以将模块中的函数覆盖
自定义模块的引用之*:
from module import *
把一个模块中所有的内容全部导入当前命名空间
弊端与部分导入的方式相同,不推荐使用这种方式导入
PS:使用内置模块的时候,也可以使用上面三种引用的方法
name属性:
模块是一个可执行的.py文件,一个模块被另一个程序引入,若在引用的时候不想让模块中的有些方法执行.这时候我们就需要使用name属性去处理.
if __name__ == "__main__":
每一个模块都有一个__name__属性,当其值等于"__main__"时,表明该模块自身在执行,否则被引入了其他文件
模块搜索路径:
当导入一个模块时,解释器现在当前包中查找模块,若找不到,然后在内置的built-in模块中查找,找不到则按sys.path给定的路径找对应的模块文件(模块名.py)
包:
包是一个包含init.py文件的目录,该目录下一定得有这个init.py文件和其它模块或者子包
安装第三方模块:
在python中,安装第三方模块,是通过setuptools这个工具完成的,python有两个封装了setuptools的包管理工具:easy_install 和pip,目前官方推荐pip
#安装包
pip install 包名
pip uninstall 包名