一周目,九日学习

函数名称空间与作用域

1 名称空间

名称空间:存放变量名与数值的绑定关系的区域  分为内置名称空间、全局名称空间、局部名称空间

内置名称空间:python解释器启动时创建结束立刻销毁  

全局名称空间:py文件执行的时候才会创建,结束时回收

局部名称空间:函数代码体开始产生结束销毁

加载顺序:内置名称空间 > 全局名称空间 > 局部名称空间

2 作用域

作用域分为全局作用域与局部作用域

全局作用域:内置名称空间、全局名称空间

局部作用域:局部名称空间

作用域的查找顺序一定要先明确你当前在哪一层

作用域方向 从小到大  局部名称空间 》》全局名称空间》》 内置名称空间

如果想在局部修改全局名称空间中的名字对应的值可以使用global关键字,

个人理解

 (作用域查找就如打怪,先从小的弱的打起——从小的作用域开始找,作用域的位置如同难度,难度越大——作用域越大,怪物越强——只能去更大的作用域寻找,global就是开挂,直接在新手村打精英怪)

匿名函数

匿名函数:没有函数名的函数,一般不单独使用,可以配合其他函数,减少代码量

匿名函数  方法  lambda  语法结构  lambda+形式参数 : 返回值  

迭代器     方法  map   语法结构  map(匿名函数 :函数公式,函数对象)  map作为迭代器,不可直接输出,需要放入指定的容器,如列表、元组等

列表生成式

 列表生成式即是对于列表运算操作的简化,减少了代码的行数

变量名=[ 运算结果+ 列表操作内容],可以将 for 或 if 条件放入列表操作内容,其中可以结构嵌套,如图三,先运算,最后输出结果

三元表达式

 三元表达式用于 if 判断的情况下,两者选一  结构 a if条件 else b 结果变量名=‘结果a’ if+条件 else‘结果b’  如果if值判断为正确,取结果a:判断为错误,取结果b

  如  res = ‘对’ if number==1 else‘错’  

同理当if只有一个值时,可以缩成一行  

  如   if 条件:print(‘对’)

模块

模块与包:  具有一定功能的代码集合,可以是py文件也可以是多个py文件的组合。  多个py文件的组合即文件夹(包)

导入模块:导入模块时会分三个步骤进行(注:当重复导入相同的模块时,只会执行一次)

1、会执行模块内代码并产生一个该模块的名称空间
2、将代码执行过程中的名字存放该名称空间中
3、然后给导入模块的语句一个模块名 ,该模块指向模块的名称空间

导入模块的两种句式

1  import 模块名

2  from 模块名 import 模块内变量名a,变量名b

方法1可以使用模块内所有变量名

方法2只能使用指定的变量名a和b并且存在冲突风险,主要用于  模块与当前文件不在同一级目录下使用  或  模块过大  时使用

起别名

如果模块名较长或者不符合你的看法 可以起别名

1、import   模块名   as  重取名

2、form  地址  import  模块名  as  重取名

时间模块

import time    启用时间模块
time.time     时间戳  是从1970年1月1日开始所经过的秒数
time.strftime   当前时间  time.strftime('%Y-%m-%d %H:%M:%S')  年月日小时分钟秒
time.sleep()  停止运算(括号内为停止时间长短)
计算函数运行时间用法
import time
start_time = time.time()
index()
end_time = time.time()
print(end_time - start_time)

import datetime
# 获取本地时间
datetime.date.today      年月日
datetime.datetime.today    年月日时分秒
定义操作时间
tdelta = datetime.timedelta(days=7)  时间差值
tdelta1 = datetime.timedelta(days=-7)
print(tday + tdelta1)          通过日期+时间差值可以获取到之后或过去的时间
posted @ 2021-08-26 00:11  aa_wang  阅读(34)  评论(0)    收藏  举报