Python教程:函数的简单介绍

简介: 函数(Function)是一种独立封装的、可重复使用的代码块,用于执行特定任务或操作。函数接受输入参数(可选)并返回输出结果(也是可选的)。在程序设计中,函数是一种将代码组织成模块化、可维护和可重用的方式。

 函数(Function)是一种独立封装的、可重复使用的代码块,用于执行特定任务或操作。函数接受输入参数(可选)并返回输出结果(也是可选的)。在程序设计中,函数是一种将代码组织成模块化、可维护和可重用的方式。

函数通常具有以下几个要素:

  1. 函数名(Function Name):函数的名称用于标识函数,在调用函数时使用。函数名应该能清晰地表达函数的功能。
  2. 参数列表(Parameters):参数是函数接受的输入值,可以在函数内部被处理或操作。参数可以是必需的,也可以是可选的,默认值的参数。
  3. 函数体(Function Body):函数体是包含在函数内部的代码块,实现了函数的具体功能。函数体可以包含多条语句,用于完成特定任务。
  4. 返回值(Return Value):函数可以选择性地返回一个或多个值作为结果。返回值是函数执行后输出的结果,可以被调用函数使用或打印出来。

通过定义和调用函数,可以将复杂的问题分解成更小的模块,提高代码的可读性、可维护性和复用性。函数在程序开发中扮演着非常重要的角色,使代码更加结构化和易于管理。

在 Python 中,函数是一种用于执行特定任务的代码块。下面我们将深入讨论函数的各个方面:

1. 函数基础

函数是 Python 中的核心概念之一,通过 def 关键字定义函数。以下是一个简单的例子:

def greet():
    print("Hello, welcome to Python functions!")
    
greet()  # 调用函数 greet()

image.gif

2. 函数参数

Python 函数支持多种参数传递方式,包括位置参数、关键字参数、默认参数和可变参数。示例代码如下:

def greet(name, message="Welcome"):
    print(f"{message}, {name}!")
greet("Alice")  # 使用默认参数
greet("Bob", "Hi")  # 提供自定义参数

image.gif

3. 匿名函数和高阶函数

匿名函数使用 lambda 表达式来创建,通常用于简单的函数操作。高阶函数可以接受函数作为参数或返回函数。示例代码:

add = lambda x, y: x + y
print(add(2, 3))
numbers = [1, 2, 3, 4, 5]
squared = list(map(lambda x: x**2, numbers))
print(squared)

image.gif

4. 作用域和闭包

Python 中有局部作用域和全局作用域的概念,闭包是指内部函数可以访问外部函数作用域的变量。示例代码如下:

def outer_func():
    message = "Hello"
    
    def inner_func():
        print(message)
        
    return inner_func
my_func = outer_func()
my_func()

image.gif

5. 递归函数

递归函数是指函数可以调用自身,常用于解决一些需要重复处理的问题。示例代码:

def factorial(n):
    if n == 0:
        return 1
    else:
        return n * factorial(n-1)
print(factorial(5))  # 计算阶乘

image.gif

6. 函数局部作用域(Local Scope)

局部作用域指的是在函数内部定义的变量,只能在函数内部访问。例如:

def my_function():
    x = 10  # x 在这里是局部变量
    print(x)
my_function()
# print(x)  # 这里将会报错,因为 x 是局部变量,超出了其作用域

image.gif

7. 函数全局作用域(Global Scope)

全局作用域指的是在模块层级定义的变量,可以在整个模块中访问。例如:

y = 20  # y 在这里是全局变量
def my_function():
    print(y)  # 可以在函数内部访问全局变量 y
my_function()

image.gif

8. 函数嵌套作用域(Enclosing Scope)

嵌套作用域指的是在函数内部的函数中访问外层函数的变量。例如:

def outer_function():
    z = 30  # z 在这里是外部函数的局部变量
    
    def inner_function():
        print(z)  # 在内部函数中可以访问外部函数的变量
    inner_function()
outer_function()

image.gif

当在函数内部访问变量时,Python 解释器会按照“局部作用域 → 嵌套作用域 → 全局作用域”的顺序搜索变量,直到找到为止。如果在所有作用域中都找不到对应的变量,将会引发 NameError。

9. 函数内置作用域(Built-in Scope)

内置作用域指的是 Python 的内置函数和对象的作用域,这些函数和对象可以在任何地方使用,无需导入任何模块。例如:

print(abs(-5))  # abs() 是内置函数,可以直接使用

image.gif


目录
相关文章
|
8天前
|
存储 Python
SciPy 教程 之 SciPy 稀疏矩阵 4
SciPy 教程之 SciPy 稀疏矩阵 4:介绍稀疏矩阵的概念、类型及其在科学计算中的应用。SciPy 的 `scipy.sparse` 模块提供了处理稀疏矩阵的工具,重点讲解了 CSC 和 CSR 两种格式,并通过示例演示了如何创建和操作 CSR 矩阵。
31 3
|
2天前
|
机器学习/深度学习 数据处理 Python
SciPy 教程 之 SciPy 空间数据 4
本教程介绍了SciPy的空间数据处理功能,主要通过scipy.spatial模块实现。内容涵盖空间数据的基本概念、距离矩阵的定义及其在生物信息学中的应用,以及如何计算欧几里得距离。示例代码展示了如何使用SciPy计算两点间的欧几里得距离。
15 5
|
1天前
|
机器学习/深度学习 Python
SciPy 教程 之 SciPy 空间数据 6
本教程介绍了SciPy处理空间数据的方法,包括使用scipy.spatial模块进行点位置判断、最近点计算等内容。还详细讲解了距离矩阵的概念及其应用,如在生物信息学中表示蛋白质结构等。最后,通过实例演示了如何计算两点间的余弦距离。
9 3
|
4天前
|
Python
SciPy 教程 之 SciPy 图结构 7
《SciPy 教程 之 SciPy 图结构 7》介绍了 SciPy 中处理图结构的方法。图是由节点和边组成的集合,用于表示对象及其之间的关系。scipy.sparse.csgraph 模块提供了多种图处理功能,如 `breadth_first_order()` 方法可按广度优先顺序遍历图。示例代码展示了如何使用该方法从给定的邻接矩阵中获取广度优先遍历的顺序。
14 2
|
5天前
|
算法 Python
SciPy 教程 之 SciPy 图结构 5
SciPy 图结构教程,介绍图的基本概念和SciPy中处理图结构的模块scipy.sparse.csgraph。重点讲解贝尔曼-福特算法,用于求解任意两点间最短路径,支持有向图和负权边。通过示例演示如何使用bellman_ford()方法计算最短路径。
14 3
|
5天前
|
缓存 测试技术 Apache
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
14 1
|
9天前
|
存储 Python
SciPy 教程 之 SciPy 稀疏矩阵 2
SciPy教程之SciPy稀疏矩阵2:介绍稀疏矩阵的概念、应用场景及scipy.sparse模块的使用。重点讲解CSC和CSR两种稀疏矩阵类型及其常用方法,如data属性和count_nonzero()方法。
34 4
|
12天前
|
测试技术 数据安全/隐私保护 Python
探索Python中的装饰器:简化和增强你的函数
【10月更文挑战第24天】在Python编程的海洋中,装饰器是那把可以令你的代码更简洁、更强大的魔法棒。它们不仅能够扩展函数的功能,还能保持代码的整洁性。本文将带你深入了解装饰器的概念、实现方式以及如何通过它们来提升你的代码质量。让我们一起揭开装饰器的神秘面纱,学习如何用它们来打造更加优雅和高效的代码。
|
13天前
|
Python
SciPy 教程 之 SciPy 模块列表 13
SciPy教程之SciPy模块列表13:单位类型。常量模块包含多种单位,如公制、二进制(字节)、质量、角度、时间、长度、压强、体积、速度、温度、能量、功率和力学单位。示例代码展示了如何使用`constants`模块获取零摄氏度对应的开尔文值(273.15)和华氏度与摄氏度的转换系数(0.5556)。
15 1
|
6天前
|
算法 索引 Python
SciPy 教程 之 SciPy 图结构 3
SciPy 图结构教程:介绍图的基本概念、节点和边的定义,以及如何使用 SciPy 的 `scipy.sparse.csgraph` 模块处理图结构。重点讲解 Dijkstra 最短路径算法及其在 SciPy 中的应用,包括 `dijkstra()` 方法的参数设置和使用示例。
10 0
下一篇
无影云桌面