函数的作用域和认识模块
12.1.1 函数的作用域
什么是作用域:
-
变量名的作用范围(这个变量,可以在哪些地方使用。)
-
变量的作用域由定义变量的地方决定
-
不同的地方定义的作用域不一样
(1)局部作用域
-
缩进范围内定义的作用域
-
函数内部的变量
(2)全局作用域
-
顶格的
-
函数外定义的作用域
(3)嵌套作用域
-
函数内部定义的函数所在的作用域
(4)内置作用域
-
python的解释器预定义的函数和变量的作用域
(5)查询顺序
先看函数内部----再看全局----再看内置(从里到外进行查询)
-
全局变量---公共财产
-
私人(局部)可以访问,但是不能修改
-
局部变量---私有财产
-
只能由私人使用和修改,全局不能访问也不能修改
num=10 def num(): num+=1 print(num1) #报错,局部内不能修改全局变量
12.1.2 global关键字
让全局可以局部使用修改
让局部可以全局使用修改
num=10 def func(): global num num+=1 print(num) func() ----------------------------------------------------------- def func() global num num=10 return num print(fun()) num+=1 print(num) #global只写函数里面 -----------------------------------------------------------
12.1.3 nonlocal关键字
让局部变量更加局部化
def func(): num=10 def hello(): print(num)#嵌套作用域内只能访问局部变量 num+=1#但是不能修改 return hello() func #因为这个嵌套里面对于局部变量进行修改了所以会报错 ----------------------------------------------------------- def func(): num=10 def hello(): nonlocal num print(num)#嵌套作用域内只能访问局部变量 num+=1#但是加上nonlocal就可以修改了 return hello() func()
12.2.1认识模块
变量:存储数据的容器
函数:封装特定功能的代码块(方法)
模块:一系列具体功能的函数集合体。一个python文件就是一个模块。
(hello.py,模块名就是hello)
(1)模块的分类
1、内置模块(标准库)
python自带的模块,想要使用的时候直接导入使用就可以。time--random模块
2、第三方模块
python自带的。需要下载安装之后才能导入使用。pygame
3、自定义模块
程序人员自己开发的模块
12.2.2第三方模块的安装
-
检测pip在电脑上面是否安装成功了
-
下载模块
pip install 模块名 下载速度慢----- pip list 可以查看自己已经下载过的模块
-
换源下载
# 清华大学下载源 pip install 模块名 -i https://pypi.tuna.tsinghua.edu.cn/simple # 阿里云下载源 pip install 模块名 -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com # 豆瓣下载源 pip install 模块名 -i https://pypi.douban.com/simple/ # 腾讯下载源 pip install 模块名 -i http://mirrors.tencentyun.com/pypi/simple # 中科大下载源 pip install 模块名 -i https://pypi.mirrors.ustc.edu.cn/simple/ # 豆瓣新版下载源头 pip install 模块名 -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
-
模块导入
import 模块名----直接导入模块 模块名.方法-----使用方法 from ······import······· (从 文件夹import 模块) (从 模块 import 方法) (从 文件夹.模块 import 方法) from model.all import hello as h 改名字 在模块名或者方法名后面加as 新名字 进行改名
回顾:
变量:存储数据的容器
函数:封装打包特功能的代码,在需要使用的时候调用
参数:给函数内部传递数据。也是一种变量。(形参实参)
返回值:指定函数调用的时候产生的结果。
函数对象:参数,元素,变量,返回值--(函数名,函数的调用)
模块:具有一系列相似功能函数的集合体。