21ewqsxx 发表于 2015-7-14 08:23:53

python函数介绍

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))


页: [1]
查看完整版本: python函数介绍