函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。
函数能提高应用的模块性,和代码的重复利用率。
Python 支持自定义函数。
定义函数使用 def 关键字,一般格式如下:
def 函数名(参数列表):
函数体
def
:标志着函数头的开始function_name
):唯一标识一个函数,函数命名遵循标识符的编写规则。parameters
):通过它可以将值传递给函数,是可选的。:
):用于标记函数头的结尾。return
语句:用于从函数返回一个值,可选的。function_name.__doc__
来访问。
一旦函数被定义,便可以从另一个程序、函数、甚至是 Python shell 中调用它。
要调用函数,只需键入函数名称,以及适当的参数。
#!/usr/bin/python
# -*- coding: UTF-8 -*-
#定义函数
def area(width, height):
'''计算面积函数'''
return width * height
w = 4
h = 5
print("width =", w, " \nheight =", h)
# 调用函数
print( " \narea =", area(w, h))
# 访问文档字符串
print(area.__doc__)
执行结果:
pydev debugger: starting (pid: 7532)
width = 4
height = 5
area = 20
计算面积函数
在 Python 中,根据有无返回值将函数分为:有返回值函数 和 无返回值函数。
调用有返回值函数时,可以使用返回的结果做相关操作;使用无返回值或返回 None 的函数时,只能得到一个 None 值。
【注】
return [表达式] 语句用于退出函数,选择性地向调用方返回一个表达式。不带参数值的 return 语句返回 None。
如果函数中没有 return 语句,则当控制流到达函数体的末尾时,函数结束。
语法格式:
return [expression_list]
>>> # 返回 None
...
>>> def welcome():
... print('Hello, World')
...
>>> print(" welcome 函数调用结果:",welcome())
Hello, World
welcome 函数调用结果: None
>>>
>>>
>>>
>>> # 一个返回值
...
>>> def add0():
... a=10
... b=20
... return a+b
...
>>> print(" add0 函数调用结果:",add0())
add0 函数调用结果: 30
一个函数只能返回一个值,或者更应该说是一个对象。对象可以是一个数值(整数或浮点数),也可以是列表或字典。所以,如果要返回 2 个整数值,可以返回一个列表或一个包含这 2 个整数值的元组。这意味着,可以间接返回多个值。
【例】计算一个序列的最大值和最小值:
>>> def max_min(seq):
... max_val = max(seq)
... min_val = min(seq)
... return max_val, min_val
...
>>>
>>>
>>> #返回值通过拆包立即存储到变量 max_val 和 min_val 中:
...
>>>
>>>
>>> l = [1, 3, 5, 7, 9]
>>>
>>> max_val, min_val = max_min(l)
>>>
>>> max_val
9
>>> min_val
1
>>>
>>>
>>> #返回多个值只不过是一种假象,函数返回的仍然是单一值:
...
>>> max_min(l)
(9, 1)
>>>
>>> # 返回值为 tuple
在语法上,返回一个 tuple 可以省略括号,并可以同时由多个变量接收,按位置赋予相应的值。
所以,Python 的函数返回多个值其实就是返回一个 tuple,只不过写起来更方便而已。