【Python入门教程】第22篇 函数

本篇我们开始学习 Python 中的函数,函数使用 def 关键字进行定义。

函数概述

函数(function)是一个命名的代码块,用于执行某个任务或者返回一个数据。

有时候我们需要在程序中多次执行一个任务,而又不想多次重复编写相同的代码。此时,我们可以将这些代码封装成一个函数,然后在需要的时候使用该函数执行相应的操作。

例如,每当我们想要在屏幕打印某个数据是,可以调用 print() 函数。Python 在后台运行 print() 函数中的代码将数据显示到屏幕上。

在实际应用中,我们可以使用函数将大型程序拆分为更小更方便管理的模块。函数使得程序更加易于开发、阅读、测试以及维护。

print() 函数是众多 Python 内置函数之一,我们可以在程序中随意调用这些函数。

接下来我们介绍一下如何创建自定义的 Python 函数。

定义函数

以下是一个用于显示问候语的简单函数:

def greet():
    """ 问候用户 """
    print('Hi')

以上是一个最简单形式的函数。函数包含两部分:函数定义和函数体。

函数定义

函数定义(function definition)以关键字 def 开始,随后是函数的名称(例如 greet)。

如果函数需要一些输入信息,我们可以在括号内指定这些参数。以上示例中的 greet 函数不需要任何输入,所以它只有一个空括号。

函数定义以冒号(:)结束。

函数体

函数定义之后的所有缩进代码都属于函数体(function body)。

示例中的三重双引号内是一个代码注释,它描述了函数的作用。Python 可以自动利用代码注释生成相应的文档。

代码 print(‘Hi’) 是函数体中唯一的实际代码,greet() 函数的作用只有一个:打印字符串“Hi”。

调用函数

当我们需要使用函数时,可以调用该函数。函数调用意味着执行函数内的代码。

为了调用函数,我们需要在代码中指定函数的名称,以及函数所需的输入信息。以下示例调用了 greet() 函数,该函数不需要任何输入信息,因此括号内为空:

greet()

如果我们执行以上代码,将会在屏幕上显示问候信息:

Hi

输入参数

如果我们想要基于用户名输出不同的问候信息,可以在 greet 函数定义的括号内指定一个名字:

def greet(name):

其中 name 被称为函数参数(function parameter),或者简称参数。

如果我们在函数定义中指定了参数,就可以在函数体中将其作为变量使用:

def greet(name):
    print(f"Hi {name}")

我们只能在函数体中使用 name 参数,不能再函数之外使用该参数。

当我们调用具有参数的函数时,需要传递相应的数据。例如:

greet('John')

以上代码的输出如下:

Hi John

我们传递给函数的数据被称为实际参数(argument),简称实参。在以上示例中,字符串“John”是一个实参。

另外,我们也可以在调用函数时传递变量作为实参。例如:

first_name = 'Jane'
greet(first_name)

以上示例中,变量 first_name 是函数 greet() 的实参。

形参和实参

函数的形参(parameter)和实参(argument)是两个不同的概念。

形式参数是函数所需的输入信息,我们在函数定义是指定形参。例如,函数 greet() 拥有一个形参 name。实际参数是我们调用函数时传递的数据。例如,字符串“John”或者变量 first_name 是函数 greet() 的实参。

有些时候我们不区分这两个术语,统称它们为函数的参数。

函数返回值

函数可以用于执行某个任务,例如 greet() 函数;或者我们也可以利用函数返回一个数据。函数返回的数据被称为返回值。

为了从函数中返回数据,可以在函数体中使用 return 语句。

return value

以下示例修改了 greet() 函数,返回了问候信息,而不是在屏幕上打印该信息:

def greet(name):
    return f"Hi {name}"

当我们调用该函数时,可以将它的返回值赋予一个变量:

greeting = greet('John')

然后在将该变量打印到屏幕上:

print(greeting)

新的 greet() 函数比旧的函数更好,因为它不再依赖于 print() 函数。我们可以在其他应用程序中重复使用 greet()。例如,我们可以 Web 应用中利用该函数在用户登录之后显示问候信息。

多个参数的函数

函数可以拥有零个、一个或者多个参数。

以下示例定义了一个 sum() 函数,它可以计算两个数字的和值:

def sum(a, b):
    return a + b

total = sum(10,20)
print(total)

输出的结果如下:

30

以上示例中,sum() 函数拥有两个参数 a 和 b,并且返回了它们的和值。

当函数包含多个参数时,需要使用逗号进行分隔。当我们调用函数时,需要给所有参数传递数据。如果传递的参数个数过多或者过少,逗号返回错误。

在以下调用中,函数体内参数 a 的值为 10,参数 b 的值为 20。

total = sum(10, 20)

总结

  • Python 函数是一个可以重复使用的命名代码块,用于执行某个任务或者返回一个数据。
  • 函数使用关键字 def 创建,由函数定义和函数体组成。
  • 函数可以包含零个或多个参数。如果函数包含一个或多个形参,调用时必须传递相同个数的实参。
  • 函数可以通过 return 语句返回数据。
上一篇:22/1/8 C语言、C++ 调试程序


下一篇:四川大学22计算机考研初试成绩可以查询了吗?