1.函数定义与调用
函数是为了实现特定功能而封装起来的一组语句块,可以被用户调用
使用函数可以降低编程难度,将大问题分解成若干小问题;实现代码重用,函数可被多次调用
格式:
def 函数名(参数列表):
函数体
函数名(参数列表)
y=0为默认参数,不传y值则y=0
1
2
3
4
| def func(x,y=0):
print x,y
func(1)
func(1,2)
|
>>>
1 0
1 2
>>>
2.局部变量和全局变量
局部变量是函数内部定义,仅在函数内有效
1
2
3
4
5
6
7
| i='before'
def func():
i='after'
print i
func()
print i
|
>>>
after
before
>>>
全局变量在函数外部定义,可以被其他程序段调用 函数内部通过global可以强制定义全局变量,当函数调用时全局变量生效 1
2
3
4
5
6
7
8
| i='before'
def func():
global i
i='after'
print i
func()
print i
|
>>>
after
after
>>>
3.函数返回值return
可以返回任意数据类型,默认为None
执行完return,函数退出
注意区分return和print
1
2
3
4
5
6
7
| def func(x,y,z):
if z=='+':
return x+y
elif z=='-':
return x-y
print func(5,2,'+')
|
>>>
7
>>>
1
2
3
4
5
6
7
| def func(x,y,z):
if z=='+':
print x+y
elif z=='-':
print x-y
print func(5,2,'+')
|
>>>
7
None
>>>
4.参数名赋值
1
2
3
4
5
| def func(x,y,z=0):
print x,y,z
func(1,2)
func(y=22,x=11,z=3)
|
>>>
1 2 0
11 22 3
>>>
5.字典赋值和冗余参数
1
2
3
4
5
| def func(name,age):
print name,age
a={'name':'zhzhgo','age':25}
func(**a)
|
>>>
zhzhgo 25
>>>
1
2
3
4
| def func(x,*args):
print x,args
func(1,2,3,4)
|
>>>
1 (2, 3, 4)
>>>
1
2
3
4
5
| def func(x,*args,**kw):
print x,args,kw
func(1,2,3,4)
func(1,2,3,4,y=5,z=6)
|
>>>
1 (2, 3, 4) {}
1 (2, 3, 4) {'y': 5, 'z': 6}
>>>
6.__main__函数
加上if __name__=='__main__':之后被其他程序import的时候就不会被执行了
7.lambda函数(匿名函数)
lambda函数是一种快速单行定义函数的方法,使代码更简洁,避免了不必要的函数体定义
func(x,y):
return x*y
与上面正常函数等价的写法
func=lambda x,y:x*y
举例:阶乘实现
reduce((lambda x,y:x*y),range(1,5))
|