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

python学习第十天 -- 函数

2016-07-26 11:30 323 查看
稍微学过其他编程语言的人都应该了解函数的概念。在这里就不做过多的介绍。

Python内置了很多有用的函数,我们可以也直接调用。

可以直接从Python的官方网站查看文档: http://docs.python.org/2/library/functions.html[/code] 
类似于之前在介绍List的range() ,用于list切片介绍的zip()函数等等。都是python内置函数库提供的API。

但是python的有些内置函数需要引用包(类型于C语言的头文件)。在程序开头引用包,举个例子:

import math //引用#math包


函数定义

在Python中,定义一个函数要使用 def 语句,依次写出函数名、括号、括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用 return语句返回。

举个例子:定义一个 square_of_sum 函数,它接受一个list,返回list中每个元素平方的和。

def square_of_sum(L):
sum = 0
for x in L:
sum += x*x
return sum


函数返回多值

在python中,函数也可以返回多个值。大家要记得,如果Python的函数返回多值其实就是返回一个tuple类似对象。

>>> def my_getvalue(x,y):
...     if y==0:
...         return
...     a = x/y
...     b = x%y
...     return a,b
...
>>> print my_getvalue(11,5)
(2, 1)


定义默认参数

定义函数的时候,还可以有默认参数。

例如Python自带的 int() 函数,其实就有两个参数,我们既可以传一个参数,又可以传两个参数:

>>> int('123')
123
>>> int('123', 8)
83


int()函数的第二个参数是转换进制,如果不传,默认是十进制 (base=10),如果传了,就用传入的参数。

函数的默认参数的作用是简化调用,你只需要把必须的参数传进去。但是在需要的时候,又可以传入额外的参数来覆盖默认参数值。

注意:由于函数的参数按从左到右的顺序匹配,所以默认参数只能定义在必需参数的后面:

# OK:
def OK1(a, b=1, c=2):
pass
# Error:
def Fail1(a=1, b):
pass


举个例子:定义一个 greet() 函数,它包含一个默认参数,如果没有传入,打印 'Hello, world.',如果传入,打印 'Hello, xxx.'

>>> def greet(name = 'world'):
...     print 'Hello,',name,'.'
...
>>> greet()
Hello, world .
>>> greet('python')
Hello, python .


定义可变参数

如果想让一个函数能接受任意个参数,我们就可以定义一个可变参数。

可变参数的名字前面有个 * 号,我们可以传入0个、1个或多个参数给可变参数。

>>> def fu(*args):
...     print args
...
>>> fu()
()
>>> fu('a')
('a',)
>>> fu(1,2,3)
(1, 2, 3)


Python解释器会把传入的一组参数组装成一个tuple传递给可变参数,因此,在函数内部也可以直接把变量 args 看成一个 tuple 类型对象。

举个例子:编写接受可变参数的 average() 函数。(求平均)

>>> def average(*args):
...     length = len(args)
...     if length ==0:
...         return 0.00
...     else:
...         return (sum(args)*1.0)/length
...
>>> print average(1,2)
1.5
>>> print average(1,2,3,4,5)
3.0


小结:函数对应python来讲,是比较实用的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: