如果您用 Python 编写过任何代码,那么您已经使用过函数。 Print()、max() 和 sum() 都是内置的 Python 函数。但是,您知道您也可以定义自己的函数吗?让我们来看看如何在 Python 中定义和调用函数。

Python 中的函数是什么?

在编程中, 函数 是执行某项特定任务或一组相关任务的代码块。

如果你发现自己经常重复使用相同的代码块,可以考虑编写一个相应的函数。这样,​​下次需要这段代码时,只需调用该函数即可。

用户定义函数带来几个重要的好处:

  • 当您需要定期完成相同的任务时,函数非常方便。定义函数后,您只需调用它,而不必一遍又一遍地输入或复制粘贴相同的代码片段。此外,如果您决定更改代码块,则只需在定义函数的地方进行更改即可。此更改将应用​​于调用函数的任何地方。
  • 通过定义和使用函数,您可以将复杂的程序分解为较小的步骤。每个步骤都可以是解决特定任务的单独函数。
  • 最后,使用用户定义函数,您的代码通常更容易理解。您可以清楚地看到每个代码块完成的任务。当函数按照后面讨论的最佳实践定义时,尤其如此。

是不是兴奋了呢?好,我们一起来定义几个函数吧。

在 Python 中定义函数:语法和示例

Python 中定义函数的语法如下:

def function_name(arguments):
    block of code

以下是语法描述:

  • 我们以 def 关键字开始,告知 Python 一个新函数正在被定义。
  • 然后,我们给函数起一个 有意义的名字 .
  • 接下来,我们在括号中列出 执行任务所需的 参数
  • 冒号 “:” 表示函数头的结束和到函数体的转换。
  • 缩进 之后 ,我们编写 执行手头任务所需的 代码块
  • 完成代码块后,我们留下一个空行来标记函数定义的结束。

现在您已经了解了语法,我建议您练习一下函数定义技能。练习的最佳方法是使用我们的 Python 基础知识。第 1 部分 课程。

具有一个参数的函数

让我们从一个简单的函数开始,该函数以名称作为输入并打印出一行介绍。以下是如何定义此函数:

def introduction(name):
    """Introduces a person given their name"""
    print('Hello! My name is', name)

这个函数名为 introduction ,有一个参数 name 。这个函数的主体只有一行,打印出消息,包括name。我们还添加了一条注释来解释这个函数的用途。

现在,我们调用它并检查输出:

introduction(‘Kateryna’)

输出

Hello! My name is Kateryna

我们只需将名称传递给我们的函数(请注意引号,因为名称是一个字符串)并获取介绍消息作为输出。

即使是一个只有一行代码的小函数,如果经常使用,也可以节省我们的时间。所以,想象一下更长的代码块会带来哪些好处!

无参数的函数

在某些情况下,你可能希望定义不带任何参数的函数。例如,让我们编写一个函数来打印有关密码错误的错误消息:

def error_message_password():
    """Prints out an error message about the incorrect password"""
    print('Sorry. We couldn’t log you in. The password you entered didn’t match our records.')

此函数不需要任何参数。因此,我们定义它,并将括号留空。调用此函数时,只需写下其名称,后跟空括号:

error_message_password()

输出

Sorry. We couldn’t log you in. The password you entered didn’t match our records.

具有多个参数的函数

现在让我们定义一个具有多个参数的更复杂的函数。这次,我们要创建一个函数,该函数将根据一个人的出生日期(出生年份、出生月份和出生日期)计算其年龄。该函数如下:

from datetime import date
def get_age(birth_year, birth_month, birth_day):
    """Calculates age (in years) based on birth year, birth month, and birth day."""
    birth_date = date(birth_year, birth_month, birth_day)
    age = date.today() - birth_date
    age_years = age.days / 365.2425
    return age_years

我们首先导入模块的日期类, datetime 以便轻松处理日期。您可以通过我们的 Python 基础知识第 3 部分 课程

现在,我们准备定义 get_age 函数。请注意,此函数需要三个参数: birth_year , birth_month , birth_day 。在函数主体中 get_age 根据提供的信息 birth_date 定义

然后,我们用今天的日期减去出生日期,计算出年龄(天数)。最后,我们用年龄(天数)除以 365.2425 一年的平均天数,计算出年龄(岁数)。

注意 函数定义末尾的 return 语句 print() 允许我们查看每个函数输出的函数。但在大多数情况下,您只需要函数返回 某个值 ,而不一定将其打印出来。

这时 return 语句就派上用场了。使用 return 关键字指定返回值,该值可以是任何 Python 对象(例如,整数、字符串、列表、元组、字典、集合等)。

现在,让我们 get_age() 使用多个参数调用我们的函数。关于传递参数,我们有两种选择:

  • 位置参数。 这涉及按照与函数定义中的参数对应的顺序传递参数:
    get_age(1987, 9, 2)

    p24

    33.57221571969308
  • 关键字参数。 这涉及以任意顺序传递参数并按名称指定每个参数:
  • get_age(birth_day=2, birth_month=9, birth_year=1987)

    输出

    33.57221571969308

使用关键字参数,您不需要注意参数顺序,但需要输入所有参数的确切名称。

另外,请注意,无论选择哪个选项,参数的数量都必须与函数定义中的参数数量相匹配。

在上面的输出中,您可以看到该 get_age() 函数按照 return 语句的要求返回年龄(以年为单位)。但是,我们可能不只是输出这个值,而是希望将其分配给一个变量。请参见下文:

kate_age = get_age(1987, 9, 2)
print(kate_age)

输出

33.57221571969308

现在, kate_age 变量保存了函数返回的值 get_age()

返回 None 的函数

所有 Python 函数都会返回某个值。如果你没有明确使用 return 语句,Python 将提供一个 隐式 return 语句,并以 None 作为返回值 .

在某些情况下,你可能希望函数执行某些操作而不返回任何值。我们可以在前两个例子中看到这一点。我们打印出函数的结果而不显式返回任何值。

现在,我们将函数的结果分配 error_message_password() 给一个变量并检查该变量的值:

error = error_message_password()
print(error)

输出

None

如您所见,error 变量存储的是 None 值,而不是您可能期望的错误消息。这是因为在我们的 error_message_password() 函数中,我们只打印出错误消息,而没有明确返回其值。

,如果你希望函数返回 ,请注意并始终 None .

使用 Python 编写函数的最佳实践

我想通过列出一些在 Python 中定义函数的有用做法来结束本指南:

  • 使用有意义的函数名。 你的函数应该有有意义的名称,以反映它们被分配要完成的任务。这不仅可以提高代码的可读性,对于使用你的代码的其他程序员来说也是如此,当你过一段时间再回来看你的代码时,你也会更容易阅读。此外,一定要遵循 Python 函数名的约定:只使用小写字母,用下划线分隔单词。
  • 将一项任务分配给一个函数。 理想情况下,一个函数应该负责一项任务。这可以支持清晰的代码结构并提高可读性。
  • 为函数 task 提供注释 。确保在标题下方包含函数功能的简短摘要。此注释称为文档字符串,应使用三重双引号(“””)括起来。

遵循这些做法,您的代码就会看起来干净、专业。

练习时间到了!

恭喜,您现在知道如何在 Python 中定义和调用函数了!现在是时候通过真正的代码挑战来巩固这些知识了。

我建议从 Python 基础知识第 1 部分 课程开始。它包括 95 个交互式练习,涵盖条件语句、“for”循环、“while”循环,当然还有 Python 中的用户定义函数。

如果 在 2021 年意识到 Python 的超能力 ,渴望了解更多,请查看整个 Python 基础 Python 基础概述文章 中了解有关此课程的更多信息 .

你正处于激动人心的 Python 旅程的开始阶段。为了让这段旅程更加精彩和有效,我想与你分享 开始学习 Python 的 9 个最佳在线资源 .

感谢阅读,祝您学习愉快!

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部