Python 函数定义

Python 中的函数,从返回值的角度可以分为 2 种:一种是 “没有返回值的函数”,另一种是 “有返回值的函数”。不管是哪一种函数,都必须使用 def 关键字来定义。其中,def 是 “define(定义)” 的缩写。

定义没有返回值的函数

在 Python 中,没有返回值的函数,指的是函数执行完就算了,不会返回任何值。

语法:

def 函数名(参数1 , 参数2 , ... , 参数n):
    ……

说明:

在 Python 中,我们也是使用 “缩进” 的方式来表示哪一个代码块属于函数。函数一定要用 def 关键字来定义。准确来说,函数其实就是一个可重复使用的、具有特定功能的语句块。

函数跟 “变量” 是非常相似的,变量需要取一个变量名,而函数也需要取一个函数名。在定义函数的时候,函数名不要乱取,尽量取有意义的英文名,让人一看就知道这个函数是干什么的。

函数的参数是可以省略的(即不写),当然也可以是 1 个、2 个或 n 个。如果有多个参数,则参数之间用英文逗号(,)隔开。此外,函数参数的个数一般取决于开发的实际需要。

示例 1:定义没有返回值的函数

# 定义函数
def get_sum(a, b):
    result = a + b
    print(result)

# 调用函数
get_sum(10, 20)

运行结果如下。

30

分析:

在上面示例中,我们使用 def 关键字定义了一个名为 “get_sum” 的函数,它用于计算任意两个数之和。其中函数名是可以随便取的,不过一般取能够表示函数功能的英文名。

def get_sum(a,b) 是函数的定义部分,这里的 a、b 是参数,也叫 “形参”(即形式参数),如下图所示。参数的名字也是随便取的。你可能就会问了:“怎么判断需要多少个参数呢?” 其实这很简单,由于这个函数用于计算任何两个数之和,那肯定就是需要两个参数了。

Python 定义函数

Python 调用函数

get_sum(10, 20) 是函数的调用,这里的 10、20 也是参数,叫做 “实参”(即实际参数),如上图所示。实际上,函数调用是对应于函数定义的,像 get_sum(10, 20) 就刚好对应于 get_sum(a, b),其中 10 对应 a,20 对应 b,因此 get_sum(10, 20) 等价于下面代码。

def get_sum(10, 20):
    result = 10 + 20
    print(result)

也就是说,函数的调用,其实就是把 “实参”(即 10 和 20)传递给 “形参”(即 a 和 b),然后把函数执行一遍,就这么简单。在这个例子中,你可以改变函数调用的参数,也就是把 10 和 20 换成其他的数,然后看看运行结果如何。

此外还需要说明一点:函数只有定义部分,却没有调用部分,这是没有任何意义的。如果函数只定义而不调用,那么 Python 就会自动忽略这个函数,也就是不会执行这个函数。函数只有调用的时候,才会被执行。

定义有返回值的函数

在 Python 中,有返回值的函数,指的是函数执行完之后,会返回一个值,然后这个值可以供我们使用。

语法:

def 函数名(参数1 , 参数2 , ... , 参数n):
    ……
    return 返回值

说明:

“有返回值的函数” 相对 “没有返回值的函数” 来说,只是多了一个 return 语句罢了。return 语句就是用来返回一个结果的。

示例 2:定义有返回值的函数

# 定义函数
def get_sum(a, b):
    result = a + b
    return result

# 调用函数
result = get_sum(10, 20) + 100
print(result)

运行结果如下。

130

分析:

这里定义了一个名为 “get_sum” 的函数,这个函数跟之前那个例子的函数功能是一样的,也是用来计算任何两个数之和。唯一不同的是,get_sum() 函数会返回相加的结果。

为什么要返回相加的结果呢?因为这个相加结果在后面要用到啊!现在小伙伴们应该知道什么时候该用 return,什么时候不用 return 了吧?一般情况下,如果后面的程序需要用到函数的运行结果,就应该使用 return 返回。如果后面的程序不需要用到函数的运算结果,就不需要使用 return 返回。

示例 3:函数返回多个值

def compute(width, height):
    girth = (width + height) * 2
    area = width * height
    return (girth, area)

result = compute(10, 20)
print(f'girth: {result[0]}')
print(f'area: {result[1]}')

运行结果如下。

girth: 60
area: 200

分析:

函数的返回值只能是一个,如果想要返回多个值,可以使用变通的方式,也就是返回一个元组。注意,此时函数返回值其实还是一个,只不过该值是一个元组而已。

说明: 对于没有返回值的函数,它本质上是使用 return 语句返回一个 None 值,也就是 return None。

上一篇: Python 函数

下一篇: Python 函数调用

给站长反馈

绿叶网正在不断完善中,小伙伴们如果发现任何问题,还望多多给站长反馈,谢谢!

邮箱:lvyenet@vip.qq.com

「绿叶网」服务号
绿叶网服务号放大
关注服务号,微信也能看教程。
绿叶网服务号