您的位置:首页 > 编程语言 > Python开发

python函数

2017-07-11 12:18 134 查看
####函数######

1.定义函数

• def关键字,依次写出函数名、括号、括号中的参数和冒号 :

• 在缩进块中编写函数体,函数的返回值用 return 语句返回。

2.函数的用法:

1># 函数在执行过程中一旦遇到return,函数就执行完毕,并将结果返回。

# 函数在执行过程中没有遇到return时,返回值None.

def hello():

    return 'hello'
    print 'fentiao'





2># 如果要定义一个什么也不做的空函数时,可以用pass语句,作为一个占位符,让代码先运行起来。

def world():

    pass

print hello()

3># 函数的参数检查

# def my_abs(x):

#     if not isinstance(x,(int,float)):

#         print "请输入整形或浮点型"

#     return abs(x)

#
# print my_abs(123)



def my_abs(x):

    if type(x) !=  int or type(x) != str:

        print "请输入整形或浮点型"

    return abs(x)

print my_abs(123)



4># 函数返回多个值,实质上是返回一个元组tuple,返回时元组可以省略括号,

# 函数调用接收返回值时,按照位置赋值给变量,

def func(x,y):

    if not isinstance(x,int) or not isinstance(y,int):

        print 'Error Type'

    avg = sum((x,y))/2

    maxnum = max(x,y)

       # return "平均值:[%d],\t最大值:[%d]," %(avg, maxnum)

    return (avg,maxnum)

myavg, mymax = func(2,10)
print myavg, mymax





5># 默认参数,必选参数同时存在函数中存在时,一定要将必选参数放在默认参数前面;

# 设置默认参数时,把变化大的参数放前面,变化小的参数放后面,变化小的参数可以设置为默认参数。

def power(x,n=2):

    return x**n

print power(2,3)

def enroll(name, age=22, myclass="西部开源运维班"):

    print 'name:'+name

    print 'age:%d' % age

    print 'class:'+ myclass

enroll('lilei')

enroll('xiaoyao',18)

enroll('fentiao',6,'全能班')


# 默认参数必须是不可变数据类型

试一试:先定义一个函数,传入一个 list,添加一个END 再返回.

def fun1(li=None):

    if li is None:

        return ['END']

    li.append('END')

    return li

def fun(li = []):

    if len(li) == 0:

        return ['END']

    li.append('END')

    return li

print fun([1,2,3])

print fun()
print fun()



6># 可变参数/位置参数

# 定义函数时,形参可以为*args,使函数可以接收多个参数,接收的数据类型为元组;

# 如果想将一个列表或者元组传入函数,也可通过*li 或 *t,将参数传入函数里。

def fun(*args):

    print type(args)

    return max(args),min(args)

li  = 1,42,3,14,58,6

print fun(*li)



7># 关键字参数



def enroll(name, age=22, **kwargs):

    print 'name:' + name

    print 'age:%d' % age

    for k, w in kwargs.items():

        print '%s : %s' % (k, w)

dic = {'myclass':'运维班',"gender":'male'}
enroll('fentiao', **dic)



8># 参数定义的顺序:必选参数 > 默认参数 > 可变参数 > 关键字参数

# *args,可变参数,args接收的是tuple.

# **kwargs,关键字参数,kwargs接收的是字典.

def enroll(name, age=22, **kwargs):

    print 'name:' + name

    print 'age:%d' % age

    for k, w in kwargs.items():

        print '%s : %s' % (k, w)

dic = {'myclass':'运维班',"gender":'male'}

enroll('fentiao', **dic)

'''

9>b = 2               # 全局变量,在整个代码中生效

def a():

    global  b

    b=1           # 局部变量,只在函数内生效

    print b

a()



eg:







练习:











内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: