摘要:在本节中,你将学习如何使用 def
关键字开发 Python 函数。
什么是函数
函数是一个命名的代码块,用于执行任务或返回值。
为什么在 Python 中需要函数
有时,你需要在程序中多次执行某个任务。但你不想在多个地方重复复制相同的代码。
为此,你可以将代码封装在一个函数中,并在需要时调用此函数来执行任务。
例如,每当你想在屏幕上显示一个值时,都需要调用 print()
函数。在幕后,Python 会运行 print()
函数内部的代码以在屏幕上显示一个值。
在实践中,你可以使用函数将大型程序分解为更小、更易于管理的部分。这些函数将使你的程序更易于开发、阅读、测试和维护。
print()
函数是 Python 中众多内置函数之一。这意味着这些函数在程序的任何地方都可以使用。
在本节中,你将学习如何定义用户自定义的 Python 函数。
定义 Python 函数
以下是一个显示问候语的简单函数:
def greet():
""" Display a greeting to users """
print('Hi')
此示例展示了函数最简单的结构。一个函数有两个主要部分:函数定义和函数体。
函数定义
函数定义以 def
关键字和函数名greet
)开头。
如果函数需要一些信息来完成其工作,你需要在括号 ()
内指定这些信息。此示例中的 greet
函数不需要任何信息,因此其括号是空的。
函数定义总是以冒号 :
结尾。
函数体
所有缩进的行(紧跟在函数定义之后)构成了函数体。
被三引号包围的文本字符串称为文档字符串(docstring)。它描述了函数的功能。Python 使用文档字符串自动生成函数的文档。
print('Hi')
是函数体中唯一一条实际代码greet()
函数执行一项任务:打印 'Hi'
。
调用函数
当你想使用一个函数时,需要调用它。函数调用指示 Python 执行函数内部的代码。
要调用一个函数,你需要写出函数名,并在括号中指定函数所需的信息。
以下示例调用了 greet()
函数。由于 greet()
函数不需要任何信息,因此你需要像这样指定空括号:
greet()
如果你运行程序:
def greet():
""" Display a greeting to users """
print('Hi')
greet()
它将在屏幕上显示一条问候语:
Hi
向 Python 函数传递信息
假设你想通过用户的名字(name
)来问候他们。为此,你需要在函数定义的括号中指定一个名字,如下所示:
def greet(name):
这name
被称为函数参数(function parameter),或者简称为参数。
当你向函数定义中添加一个参数时,你可以在函数体中将其用作一个变量:
def greet(name):
print(f"Hi {name}")
你只能在 greet()
函数的函数体内访问 name
参数,而不是在函数体外。
当你调用带有参数的函数时,需要传递信息。例如:
greet('John')
以下是完整的程序:
def greet(name):
print(f"Hi {name}")
greet('John')
输出:
Hi John
你传递给函数的值称为实参(argument)。在此示例中'John'
就是一个实参。
或者,你也可以通过传递一个变量来调用该函数:
def greet(name):
print(f"Hi {name}")
first_name = 'Jane'
greet(first_name)
输出:
Hi Jane
在这个示例中first_name
变量也是 greet()
函数的实参(argument)。
参数 vs 参数值(形参 vs 实参)
有时,参数(parameter,形参)和参数值(argument,实参)会互换使用。但区分函数的参数和参数值是很重要的。
参数(形参)是函数所需的信息。你在函数定义中指定参数。例如greet()
函数有一个名为 name
的参数。
参数值(实参)是你传递给函数的数据。例如,文本字符串 'John'
或变量 jane
是函数的参数值(实参)。
返回值
函数可以像 greet()
函数那样执行任务,也可以返回一个值。函数返回的值称为返回值。
要从函数中返回值,你需要在函数体中使用 return
语句。
return value
以下示例修改了 greet()
函数,使其返回一条问候语,而不是在屏幕上显示它:
def greet(name):
return f"Hi {name}"
当你调用 greet()
函数时,可以将其返回值赋给一个变量:
greeting = greet('John')
然后在屏幕上显示它:
print(greeting)
新的 greet()
函数比旧的好,因为它不依赖于 print()
函数。
之后,你可以在其他应用程序中重用 greet()
函数。例如,你可以在 Web 应用程序中使用它,在用户登录后向他们问候。
def greet(name):
return f"Hi {name}"
greeting = greet('John')
print(greeting)
输出:
Hi John
Python 中具有多个参数的函数
一个函数可以有零个、一个或多个参数。
以下示例定义了一个名为 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
语句从函数中返回值。