偏函数:
将函数的某些值固定住,给你返回一个新的函数,这个函数就是偏函数的功能.
newfunc = functool.partital(func,参数)
‘’’
import operator
sum1 = functools.partial(operator.add,100)
print(sum1(1001))
‘’’
变量的作用域:变量起作用的范围.
程序中的变量并不是爱任意的地方都能访问,访问的范围取决于它赋值的位置[定义的位置]
局部作用域:在函数中定义的变量,每当函数被调用的时候它都会产生一个新的作用域,
这个新的作用域我们称之为局部作用域.在局部作用中定义的变量,我们称之为局部变量.
局部变量起作用的范围就是当前所在的函数.
嵌套作用域:又称函数作用域
全局作用域:在模块中定义的变量,并且定义在函数体之外的变量,他们产生的作用域
叫做全局作用域,这个变量我们成为全局变量.全局变量作用的范围整个.py文件.
内置作用域:
系统内部定义的变量产生的作用域.
作用范围:整个.py文件
搜索变量的优先级:
局部作用域>嵌套作用域>全局作用域>内置作用域,
当这几个作用域中都不存在的时候则报错
注意:在局部作用域中,不能直接更改全局变量的值,若有需要在局部作用域中更改全局
变量,则需要在更改之前对此变量进行声明,使用关键字global进行声明,声明之后可更改
在Python中只有模块,类以及函数[def,lambda]这些才会引入新的作用域,而其他语句
块比如:if/else,while.for,try/except这些语句块不会引入新的作用域,也就是说这些
语句中定义的变量在外部仍然可以使用
回调函数:
将函数作为参数传递到另外一个函数中,这个被传递进去,后来又被调用的函数.
返回函数:
把函数作为返回值返回的时候,我们称这个函数为返回函数
闭包:在外函数的内部定义了一个内函数,内函数使用了外函数的临时变量,
外函数的返回值是内函数的引用[内函数的函数名],这时候就构成了一个闭包.
一般情况下当函数执行完毕,函数中所有的东西都会释放到还给内存,这时候
局部变量也会消失,但是当外函数结束的时候,发现自己还有临时变量在内函数中
还会使用,此时外函数会将自己的临时变量绑定内函数,自己再结束.
函数的变量在函数调用时创建,函数调用结束时销毁
装饰器一定是闭包.闭包不一定是装饰器.
递归函数
函数在内部可以调用其他函数,当被调用的函数是函数本身的时候,称他为递归函数
使用递归函数的时候,一定要考虑栈溢出的情况
一般情况下不建议使用
‘’’
def f(n):
if n == 1:
return 1
else:
return f(n-1)+n
print(f(100))
斐波那契数列
def func(x):
if x1 or x2:
return 1
else:
return func(x-1)+func(x-2)
print(func(5))
‘’’
绝对路径:
在windows中以盘符开头的或者是\开头的
在linux或者mac中以"/"开头的
相对路径:
在windows中以.或者…或者直接以文件开头
在linux与mac中与windows表示的路径是相同的
.当前目录
…上一级目录
os.getcwd()
功能:获取当前文件所在目录绝对路径
os.listdir()
功能:获取指定目录下所有文件的文件名,若不指定path,则获取当前目录下的.
os.path.abspath(path)
功能:获取path的绝对路径[将path与当前文件所在目录的路径进行拼接处理]
os.path.split(path)
功能:将路径分解为目录与文件的部分,以元组的方式返回.
实际上使用"/"对路径进行切分,从左往右切,切一次,左边获取到的就是目录部分
右边获取的是文件部分
os.path.join(path,paths)
功能:对path进行路径拼接,若在paths中出现绝对路径,这前面的路径不保留,返回
后面的绝对路径
os.path.basename(path)
功能:返回文件的path部分
os.path.getsize(path)
功能:获取指定文件的大小,目录的大小获取不到
os.path.exists(path)
功能:判断指定的路径是否存在,若存在则返回True,否则返回False
os.path.isdir(path)
功能:判断指定的路径是否为目录,若是则返回True,否则返回False
os.path.isfile(path)
功能:判断指定的路径是否为文件,若是则返回True,否则返回False
os.remove(path)
功能:删除指定的文件
os.mkdir(path)
功能:创建指定的目录
os.rmdir(path)
功能:删除指定的空目录[只能删除一层]
os.removedirs(path)
功能:递归删除多层空目录[不存在文件]
os.makedirs(path)
功能:递归创建多层空目录
os.chdir(path)
功能:切换到指定目录
‘’’