**
一、pip工具
1.python自带的包管理工具,用于从网络上下载,安装,查找,卸载,更新的第三方包
2.安装
pip install 包名
pip install 包名==版本号
pip install 包名>=版本号 (指定安装的最小版本)
3.卸载
pip uninstall 包
4.查看
pip list
5.搜索
pip search 包名
6.更新
pip install --upgrade 包名
7.查看版本
pip -V 或者 --version
8.修改下载源
a.常见的pip镜像源地址:
阿里云 https://mirrors.aliyun.com/pypi/simple/
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
豆瓣(douban) https://pypi.douban.com/simple/
清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/
中国科学技术大学 https://pypi.mirrors.ustc.edu.cn/simple/
b.windows:
打开C盘--->用户(Users)--->进入到某个用户目录(www)->创建一个pip目录
--->在创建一个pip.ini文件
在文件中添加以下:
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host = pypi.tuna.tsinghua.edu.cn
c.补充: 临时指定下载源
pip install 包名 -i https://pypi.mirrors.ustc.edu.cn/simple/
**
二、模块加强
1.系统规定死的路径
先后顺序:a->b->c->d
a.内置模块路径(python.exe中),任意地方都能使用
b.系统标准模块路径(python安装路径/Lib目录中),任意地方都能使用
c.主执行文件所在当前目录
d.第三方包的安装路径(pip install PyMySQL):python安装路径/Lib/site-packages,任意地方都能使用
2.自定义路径
任意指定一个路径作为包/模块的查找路径
实现方式:
import sys
sys.path # 系统路径,列表,可修改的
sys.path.append('新目录路径')
sys.path.insert(0,'新目录路径')
3.注意事项:自定义模块不要与其他模块重名
重名将出现“对象没有属性”等报错问题,因为系统先找到了系统内置或标准模块路径的其他重名文件并误读取了另一重名文件
**
三、命名空间作用域
1.命名空间
解决命名突出, python只能用于查看
命名空间,字典, 保存变量/函数/类 名 与其 对应值的 映射关系
局部命名空间--locals()
全局命名空间--globals()
内建命名空间- print(dir(__builtins__))
2.作用域
概念: 变量/函数 作用范围
作用域分类:
a.局部作用域 (函数内部)
只能在函数内使用
b.全局作用域 (函数外部)
任意地方都能访问, 函数内不能修改
c.闭包作用域 (函数 嵌套函数, 内函数使用外层函数中的变量 , 必须返回内函数)
d.内建作用域
任意位置使用
3.变量的查找顺序
LEGB
Local (局部) > Enclosed(闭包) > Global(全局)-->Built-in 内建
4.指定访问对应命名空间
global 变量名 --- 指定访问全局
nonlocal 变量名 --- 指定访问不是局部
UnboundLocalError --- 使用一个未赋值的局部变量
**
四、赋值与拷贝
1.简单数据和复杂数据
a.简单数据在赋值的时候都是使用同一个内存空间, 节约内存.
例如: 字符串, 数字 ,布尔
b.复杂数据,每次赋值,都是开辟一个新的内存空间, 将对应的空间地址 赋值 给变量
例如: 列表,字典,元组,类实例化的对象
c. ==: 判断值相等
is : 判断地址相等
2. 浅拷贝
import copy
copy.copy()
3.深拷贝
将对应数据中 的复杂数据 也拷贝了一个新的内存地址
import copy
新数据 = copy.deepcopy(旧数据)