My Python Notebook 记录 Python 学习、数据分析与全栈开发的个人博客

python函数

Python函数与获取帮助学习笔记

一、核心概念:为什么需要函数?

  • 化繁为简:将重复的代码块封装起来,提高代码复用性。
  • 模块化:将复杂问题分解为小的、可管理的任务,使代码逻辑更清晰。
  • 易于维护和调试:修改函数内部实现,所有调用处自动生效;独立测试函数更方便。

二、定义与调用函数

1. 基本语法

def 函数名(参数1, 参数2, ...):
    """文档字符串(可选),描述函数功能"""
    # 函数体(执行的具体操作)
    return 返回值 # 可选

2. 关键点

  • def关键字:用于定义函数。
  • 函数名:应具有描述性,遵循小写_和_下划线命名规范。
  • 参数:函数可以接收零个或多个参数(也叫自变量)。
  • return语句:用于返回结果。如果没有return,函数默认返回None

3. 调用函数

  • 使用函数名(实际参数)的方式执行函数。

三、参数传递的灵活性

  • 位置参数:按定义时的顺序传递,如func(a, b)
  • 关键字参数:通过参数名=值的方式传递,顺序可以改变,如func(b=2, a=1)
  • 默认参数:在定义时为参数指定默认值,如def func(a, b=10):,调用时b可选。
  • 可变参数(了解即可):
    • *args:接收任意数量的位置参数,打包为元组。
    • **kwargs:接收任意数量的关键字参数,打包为字典。

四、函数作用域

  • 局部变量:在函数内部赋值的变量,仅在函数内有效。
  • 全局变量:在函数外部赋值的变量,在整个模块中有效。在函数内修改全局变量需使用global关键字(通常不推荐,容易引起混乱)。

五、获取帮助与文档

1. help()函数

  • 用途:是Python内置的交互式帮助系统。在Jupyter Notebook或命令行中,输入help(函数名)可以查看函数的文档字符串、参数和用法示例。
  • 示例help(print) 会显示print函数的详细说明。

2. 文档字符串 (Docstring)

  • 用途:函数开头的三引号字符串,是编写函数说明的标准方式。它会被help()函数读取并显示。
  • 示例

      def calculate_average(numbers):
          """计算一个数字列表的平均值。
    
          参数:
              numbers (list): 包含数字的列表。
    
          返回:
              float: 列表元素的平均值,如果列表为空则返回0.0。
          """
          if not numbers:
              return 0.0
          return sum(numbers) / len(numbers)
    

3. print()return的区别 *print():将内容输出到控制台(屏幕),方便调试和查看中间结果,但不会影响程序的执行流程和数据传递。 * return:是函数的返回值,它将结果传递给函数的调用者,供后续代码使用。

六、常见错误与调试提示

  • NameError:尝试访问一个未定义的变量或函数名。检查拼写和变量作用域。
  • TypeError:函数接收了错误类型或数量的参数。使用help()检查函数签名。
  • IndentationError:代码缩进不正确。Python对缩进敏感,确保函数体缩进一致。

七、总结与实践建议

  • 编写函数的原则:一个函数只做一件事,并做好它(单一职责原则)。
  • 使用help()的习惯:遇到不熟悉的函数或模块,先使用help()查看文档,是高效学习的关键。
  • 动手练习:尝试将之前编写的一段重复性代码改写为函数,并为其添加详细的文档字符串,然后用help()查看效果。