Python 基础语法与数据类型(七) - 函数的定义与调用 (def, return)


到目前为止,我们已经学习了基本的数据类型、集合类型以及控制程序流程的条件语句和循环。随着程序越来越复杂,我们可能会发现自己反复编写相同的代码块来执行特定任务。这不仅低效,还会导致代码难以阅读和维护。

函数就是解决这个问题的重要工具。它们允许我们将一段代码封装起来,赋予一个名字,然后在需要的时候多次调用。本篇博客将深入讲解如何定义自己的函数、如何调用它们,以及如何使用 return 语句从函数中获取结果。

为什么要使用函数?

使用函数的好处多多:

  1. 代码重用 (Reusability): 避免重复编写相同的代码块。遵循 DRY (Don’t Repeat Yourself) 原则。
  2. 模块化 (Modularity): 将程序分解成更小、更易于管理和理解的部分。每个函数负责一个特定的任务。
  3. 提高可读性 (Readability): 通过有意义的函数名,代码变得更容易理解其目的。
  4. 易于维护和调试 (Maintainability & Debugging): 当需要修改或修复某个功能的代码时,只需在一个地方(函数定义处)进行修改。如果出现错误,更容易定位问题在哪个函数中。

函数的定义 (def)

在 Python 中,使用 def 关键字来定义一个函数。定义函数的基本结构如下:

def function_name(parameter1, parameter2, ...):
    """
    这里是函数的文档字符串 (Docstring)。
    解释函数的功能、参数和返回值。
    """
    # 函数体 - 执行任务的代码块
    # ...
    # return value # 可选的返回值

  • def 关键字: 标记着一个函数的定义开始。
  • function_name: 函数的名字。需要遵循 Python 的命名规则(通常使用小写字母和下划线 _ 组合,称为 snake_case)。函数名应该能够清晰地表明函数的功能。
  • 圆括号 (): 紧跟在函数名后面。里面可以包含参数 (Parameters),用于接收外部传递进来的数据。如果没有参数,圆括号也不能省略。
  • 冒号 :: 标记着函数头部的结束,函数体即将开始。
  • 文档字符串 (Docstring): 使用三引号 """ """''' ''' 包围起来的一段文本。它应该在函数头部的下一行,用于详细说明函数的作用。这是 Python 的一个重要特性,可以通过 help(function_name)function_name.__doc__ 查看。编写良好的文档字符串是好习惯。
  • 函数体: 缩进的代码块,包含了函数执行的实际操作。
  • return 语句: 用于指定函数执行完毕后返回给调用者的值。是可选的。

示例: 定义一个简单的函数,它不接受参数,也不返回值,只打印一条消息。

def greet():
    """这是一个简单的打招呼函数。"""
    print("Hello, welcome to Python functions!")
    print("This function does not take arguments and does not return a value.")

上面的代码只是定义了一个函数,它还没有被执行。

函数的调用

定义函数后,要让它执行里面的代码,就需要调用它。调用函数非常简单,只需要使用函数名后面加上圆括号 () 即可。如果函数定义时有参数,调用时需要在圆括号中提供相应的实参 (Arguments)

# 调用上面定义的 greet 函数
greet()
greet() # 函数可以被多次调用

输出:

Hello, welcome to Python functions!
This function does not take arguments and does not return a value.
Hello, welcome to Python functions!
This function does not take arguments and does not return a value.

函数参数 (Parameters vs Arguments)

  • 参数 (Parameters): 在函数定义时,圆括号中列出的变量名。它们是函数内部使用的占位符,代表函数期望接收的数据。
  • 实参 (Arguments): 在函数调用时,传递给函数参数的实际值。
# 定义一个接受一个参数的函数
def greet_person(name):
    """向指定名字的人打招呼。

    Args:
        name: 要打招呼的人的名字 (字符串)。
    """
    print(f"Hello, {
     
     name}!")

# 调用函数,并传递实参
greet_person("Alice") # "Alice" 是传递给 name 参数的实参
greet_person("Bob")   # "Bob" 是传递给 name 参数的实参

输出:

Hello, Alice!
Hello, Bob!

一个函数可以有多个参数,调用时需要按照参数定义的顺序传递实参。

# 定义一个接受两个参数的函数
def add_numbers(a, b):
    """计算两个数字的和。

    Args:
        a: 第一个数字。
        b: 第二个数字。
    """
    sum_result = a + b
    print(f"{
     
     a
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值