python之函数

来源:互联网 发布:公司使用的php开发软件 编辑:程序博客网 时间:2024/06/10 14:19

函数的定义

def 函数名(参数):

# 函数在执行过程中一旦遇到return时,函数就执行完毕,并将结果返回。# 函数在执行过程中没有遇到return时,返回值为None.def hello():    return 'hello'    print 'fentiao'print hello()

这里写图片描述

调用函数

Python 内置了很多有用的函数,我们可以直接调用:
• abs()
• cmp()
• 数据类型转换函数:
int(), float(), str(),unicode(),bool()

函数返回值

# 函数返回多个值,实质上是返回一个元组touple,返回时元组可以省略括号,# 函数调用接受返回值时,按照位置赋值给变量def func(a, b):    if not isinstance(a, int) or not isinstance(b, int):        print 'error type'    avg = sum((a, b)) / 2    maxnum = max(a, b)    return (avg, maxnum)myavg, mymax = func(2, 9)print myavg, mymax

这里写图片描述

函数的参数

1.默认参数

# 默认参数必须是不可变数据类型def func1(a=None):    if a is None:        return ['END']    a.append('END')    return adef func(li=[]):    if len(li) == 0:        return ['END']    li.append('END')    return liprint func([1, 2, 3])print func()

这里写图片描述

2.可变参数

# 可变参数# 定义函数时,形参可以为*args,使函数可以接收多个参数;# 如果想将一个列表或者元组传入函数,也可以通过*li 或 *t,将参数传入函数里。def fun(*args):    print type(args)    return max(args), min(args)li = 87, 23, 34, 77, 2, 66print fun(*li)

这里写图片描述

3.关键字参数

# 关键字参数def enroll(name, age=22, **kwagrgs):    print 'name:', name, '\nage:%d' % age    for key, value in kwagrgs.items():        print '%s:%s' % (key, value)    print type(kwagrgs)enroll('cici', myclass='linux', gender='male', feel='ll', )

这里写图片描述

3.总结

参数定义的顺序:必选参数 > 默认参数 > 可变参数 > 关键字参数
*args,可变参数,args接收的是touple
**kwargs,关键字参数,kwargs接收的是dic

# 默认参数,必选参数同时存在函数中存在时,一定将必选参数放在默认参数前面;# 设置默认参数时,把变化大的参数放在前面,变化小的参数放在后面,变化小的参数可以设置为默认参数。def enroll(name, age=22, myclass='linux'):    print 'name:', name, '\t age:%d' % age, '\t class:', myclassenroll('hehe')enroll('xiaoxiao', 18)enroll('cici', 24, 'all')

这里写图片描述

4.变量的作用域

b = 2               # 全局变量,在整个代码中生效def a():    global b        # 将局部变量转换为全局变量    b = 1           # 局部变量,只在函数中生效    print ba()print b

这里写图片描述

示例:

求绝对值的函数

def myabs(a):    if isinstance(a, (int, float)):        # print abs(a)        return abs(a)    else:        print 'bad type for myabs()'# a = input()print myabs('ad')

这里写图片描述