函数基本传参
def func(x,y):
print(x)
print(y)
return x*y
func(1,3)
print(func(3,3))
1
3
3
3
9
函数的非固定传参
将多余的参数转换为元祖
def func(x,*name):
print(x)
print(name)
func("adadadadadass",1,3,3,4,5,6)
adadadadadass
(1, 3, 3, 4, 5, 6)
将传递的参数转换为字典
def func(x,test=24,**name):
print(test)
print(x)
print(name)
print(name['age'])
#传递默认参数时有两种参数指定方式一个是根据传参位置,一个是根据在传参时进行定义
func("hahah",name='test',age=6,number=10,test=40)
print("---"*10)
func("hahah",43,name='test',age=6,number=10)
40
hahah
{'name': 'test', 'age': 6, 'number': 10}
6
------------------------------
43
hahah
{'name': 'test', 'age': 6, 'number': 10}
6
匿名函数
testfunc = lambda x:x*3
print(testfunc(5))
15
函数的作用域
局部变量
name = 'test'
def func(name):
print("old_name",name)
print("---"*10)
name = 'NEW_TEST'
print("new_name",name)
print()
func(name)
print("---func out---")
print(name)
old_name test
------------------------------
new_name NEW_TEST
---func out---
test
将局部变量定义为全局变量
def func():
global school#这里global不能定义形参
school = "qinhua"
func()
print(school)
qinhua
高阶函数
将函数作为参数传入到函数中
def func(a,b,f):
pass
return f(a)+f(b)
print(func(3,9,str))
39
递归函数
函数自己反复调用自己本身
def func(number):
print(number)
if number >= 0:
return func(number-1)
func(5)
5
4
3
2
1
0
-1
函数嵌套
可以用于装饰器,最外层函数return内层函数
def wai(nummber):
print("this is wai func")
print("---"*10)
def nei1(nummber):
print("ONE %d > 10,this is nei1" %nummber)
def nei2(nummber):
print("SECOND %d < 10,this is nei2" %nummber)
if nummber > 10:
return nei1(nummber)
else:
return nei2(nummber)
wai(1)
this is wai func
------------------------------
SECOND 1 < 10,this is nei2