当前位置: 首页 > news >正文

【Python】函数

在这里插入图片描述

个人主页:Guiat
归属专栏:Python

在这里插入图片描述

文章目录

  • 1. 函数的定义
    • 1.1 基本定义方式
    • 1.2 函数名和参数
  • 2. 函数的调用
    • 2.1 基本调用方式
    • 2.2 参数传递
  • 3. 函数的返回值
    • 3.1 `return` 语句
    • 3.2 返回多个值
  • 4. 函数的作用域
    • 4.1 局部变量
    • 4.2 全局变量
  • 5. 匿名函数(Lambda 函数)
    • 5.1 定义和使用
    • 5.2 应用场景
  • 6. 递归函数
    • 6.1 定义和原理
    • 6.2 优缺点

正文

1. 函数的定义

1.1 基本定义方式

在 Python 中,使用 def 关键字来定义函数。其基本语法如下:

def function_name(parameters):
    """函数文档字符串,用于描述函数的功能和使用方法"""
    # 函数体,包含具体的执行代码
    return result  # 可选,用于返回函数的结果

以下是一个简单的示例,定义一个用于计算两个数之和的函数:

def add_numbers(a, b):
    """计算两个数的和"""
    return a + b

1.2 函数名和参数

  • 函数名应该具有描述性,遵循 Python 的命名规范(通常使用小写字母和下划线)。
  • 参数是函数接收的输入值,可以有零个或多个。参数在函数定义时位于括号内,多个参数之间用逗号分隔。

2. 函数的调用

2.1 基本调用方式

定义好函数后,可以通过函数名加上括号并传入相应的参数来调用函数。例如,调用上面定义的 add_numbers 函数:

result = add_numbers(3, 5)
print(result)  # 输出 8

2.2 参数传递

  • 位置参数:按照参数在函数定义中的顺序依次传递值。例如:
def greet(name, message):
    print(f"{message}, {name}!")

greet("Alice", "Hello")  # 位置参数传递
  • 关键字参数:通过指定参数名来传递值,这样可以不按照参数定义的顺序。例如:
greet(message="Hi", name="Bob")  # 关键字参数传递
  • 默认参数:在函数定义时可以为参数指定默认值,调用函数时如果没有提供该参数的值,则使用默认值。例如:
def greet(name, message="Hello"):
    print(f"{message}, {name}!")

greet("Charlie")  # 使用默认的 message 值

3. 函数的返回值

3.1 return 语句

return 语句用于从函数中返回一个值,并终止函数的执行。一个函数可以有多个 return 语句,但只有一个会被执行。例如:

def is_even(num):
    if num % 2 == 0:
        return True
    return False

print(is_even(4))  # 输出 True

3.2 返回多个值

在 Python 中,函数可以通过返回一个元组的方式返回多个值。例如:

def get_name_and_age():
    name = "David"
    age = 25
    return name, age

name, age = get_name_and_age()
print(f"Name: {name}, Age: {age}")

4. 函数的作用域

4.1 局部变量

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

def example_function():
    local_variable = 10
    print(local_variable)

example_function()
# print(local_variable)  # 这行代码会报错,因为 local_variable 是局部变量

4.2 全局变量

在函数外部定义的变量是全局变量,可以在函数内部访问,但如果要在函数内部修改全局变量的值,需要使用 global 关键字。例如:

global_variable = 20

def modify_global():
    global global_variable
    global_variable = 30

modify_global()
print(global_variable)  # 输出 30

5. 匿名函数(Lambda 函数)

5.1 定义和使用

Lambda 函数是一种简洁的、匿名的函数,通常用于简单的、一次性的操作。其基本语法为:

lambda arguments: expression

以下是一个使用 Lambda 函数的示例,用于计算两个数的乘积:

multiply = lambda a, b: a * b
print(multiply(4, 6))  # 输出 24

5.2 应用场景

Lambda 函数常用于需要传递一个简单函数作为参数的情况,例如在 map()filter() 等函数中。例如,使用 map() 函数将列表中的每个元素都平方:

numbers = [1, 2, 3, 4]
squared_numbers = list(map(lambda x: x ** 2, numbers))
print(squared_numbers)  # 输出 [1, 4, 9, 16]

6. 递归函数

6.1 定义和原理

递归函数是指在函数内部调用自身的函数。递归函数通常包含两个部分:基本情况(终止条件)和递归情况。基本情况用于终止递归,避免无限循环。例如,计算阶乘的递归函数:

def factorial(n):
    if n == 0 or n == 1:
        return 1  # 基本情况
    return n * factorial(n - 1)  # 递归情况

print(factorial(5))  # 输出 120

6.2 优缺点

  • 优点:递归函数可以使代码更加简洁、清晰,尤其适用于处理具有递归结构的问题,如树的遍历、分治算法等。
  • 缺点:递归函数可能会导致栈溢出错误,尤其是在递归深度很大的情况下。同时,递归函数的性能可能不如迭代实现,因为每次递归调用都需要额外的栈空间和函数调用开销。

结语
感谢您的阅读!期待您的一键三连!欢迎指正!

在这里插入图片描述

相关文章:

  • Java八股文详细文档.2(基于黑马、ChatGPT、DeepSeek)
  • springboot与springcloud对应版本
  • 【Java学习】类和对象
  • qt QRadioButton 总结
  • C++11新特性之别名模版
  • Python--网络编程
  • 【C++前缀和】1906. 查询差绝对值的最小值|2146
  • DeepSeek-R1-Distill-Qwen-1.5B模型的深度解析
  • Vue.js 组件 - 自定义事件
  • 当通用智能遇到深度推理:如何正确驾驭DeepSeek-V3与R1?
  • 解决Windows11复制文件到桌面会跑左上角第2个位置导致桌面图标位置错乱问题
  • 算法11-分治算法
  • C++字符串处理指南:从基础操作到性能优化——基于std::string的全面解析
  • 数据结构与算法之排序算法-归并排序
  • 节目选择器安卓软件编写(针对老年人)
  • 面试完整回答:SQL 分页查询中 limit 500000,10和 limit 10 速度一样快吗?
  • 生成式人工智能:技术革命与应用图景
  • 理解WebGPU 中的 GPUAdapter :连接浏览器与 GPU 的桥梁
  • 数学建模基础训练-1:概念解析
  • AUTOSAR MCAL层ETH模块(1)——通信原理
  • 病重老人被要求亲自取钱在农业银行门口去世?株洲警方介入
  • 河南省委常委会会议:坚持以案为鉴,深刻汲取教训
  • 优化营商环境,服务上海“五个中心”建设,北外滩有何举措?
  • 铁路部门:确保沿线群众安全,焦柳铁路6个区段将陆续安装防护栅栏
  • 百利天恒董事长向复旦捐赠三千万元,用于支持创新药物靶点发现等师资建设需要
  • 著名蒙古族音乐学者马•斯尔古愣逝世,享年86岁