Python函数的一些知识总结笔记(如果有错误请见谅)
自己学python的时候留下的一些笔记。
#函数的基础知识
"""
一.函数的参数
1.默认参数可以不用赋值,直接调用函数,但是要在定义的时候赋初值,
2.收集参数,可以防止不知道需要多少个参数,
例如:
def test(*params):
print("参数长度是:",len(params));
print("第二个参数是:",params[1]);
test(1,"qhj",3.14,5,6,7,8)
参数是:8
第二个参数是:qhj
如果要写成 :
def test(*params,exp):
print("...");
test(1,2,3,4,5,exp = 5);
这样才不会报错,或者使用默认参数 :
def test(*params, exp = 0):
二.函数与过程
1.python所有函数都会返回东西,如果没有返回值,就返回none,
2.python可以返回多个值,那就是使用列表:
def back():
return [1,2,"qhj"]
这样就会返回一个列表
当然直接:
def back():
return 1,'qhj',3.14
这样会返回一个元组
三.函数与变量
1.python函数里依然是有局部变量。
2.python函数里面可以随便访问全局变量,但是在函数里面修改全局变量的时候,python会自动生成一个和全局变量名字相同,
但是“不一样”的局部变量。
3.如果想要在函数里面改变全局变量:
count = 10
def back():
global count #需要使用关键字
count = 5
print(count)
四.内嵌函数
1.函数嵌套的一个例子:
def fun1():
print("this is first function")
def fun2():
print("this is second function")
fun2()
内部函数的作用域,都在外部函数内,比如只能在fun1()里调用fun2()
2.闭包
defX():
def funY():
return x*y
return FunY
调用的时候:
funX(8)(5)
40
3.内部函数调用外部函数的变量的时候
(1)可以将外部函数的变量变为列表,
(2)可以使用关键字:nonlocal x,
五.匿名函数
1.使用lambda函数定义函数:
lambda x : 2*x+1(前面时形参,后面是返回值)
这样会返回一个函数,例如:
g = lambda x : 2*x+1
g(5)
输出11
2.过滤器
filter(function or None,可以迭代的变量),例如:
filter(None, [1,0,false,True])
list(filter(None, [1,0,false,True]))
[1,True](0,false被过滤了)
结合function:
def odd(x)
return x % 2
temp = range(10)
show = filter(odd, temp)
list(show)
[1, 3, 5, 7, 9]
所以过滤器就是:
只返回那些,经过一个函数后,返回值是1的参数。(最后返回一个序列)
filter(lambda x : x % 2,range(10))
3.map()
map(lambda x : x *2,range(10))
将会得到一个序列,也就是0,2,4,6,8......
六.递归
1.设置递归的深度:
import sys
sys.setrecursionlimit(1000)
"""