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

Python函数定义教程:从入门到精通 | Python函数语法详解

Python函数定义教程:从入门到精通

函数是Python编程的核心概念之一,用于组织和重用代码。本教程将全面介绍Python函数的定义方法、参数传递、返回值以及高级用法。

函数定义基础

使用def关键字定义函数的基本语法:

def function_name(parameters):
    """函数文档字符串"""
    # 函数体
    return value

基本函数示例

def greet(name):
    """向指定名字的用户打招呼"""
    print(f"你好, {name}!")

greet("张三")  # 输出: 你好, 张三!

函数参数详解

1. 位置参数

最常见的参数传递方式,按顺序匹配参数:

def power(base, exponent):
    return base ** exponent

result = power(2, 3)  # 8 (2的3次方)

2. 默认参数

为参数提供默认值,调用时可省略:

def greet(name, greeting="你好"):
    print(f"{greeting}, {name}!")

greet("李四")          # 输出: 你好, 李四!
greet("王五", "早上好")  # 输出: 早上好, 王五!

3. 可变参数(*args)

接收任意数量的位置参数:

def sum_all(*args):
    total = 0
    for num in args:
        total += num
    return total

result = sum_all(1, 2, 3, 4)  # 10

4. 关键字参数(**kwargs)

接收任意数量的关键字参数:

def person_info(**kwargs):
    for key, value in kwargs.items():
        print(f"{key}: {value}")

person_info(name="张三", age=30, city="北京")
# 输出:
# name: 张三
# age: 30
# city: 北京

返回值与作用域

返回多个值

Python函数可以返回多个值(实际上是元组):

def calculate(a, b):
    return a+b, a-b, a*b, a/b

sum, diff, prod, quot = calculate(10, 5)
print(sum)   # 15
print(diff)  # 5
print(prod)  # 50
print(quot)  # 2.0

变量作用域

理解局部变量和全局变量:

count = 10  # 全局变量

def increment():
    global count  # 声明使用全局变量
    count += 1

increment()
print(count)  # 11

Lambda匿名函数

用于创建小型匿名函数,适用于简单操作:

# 基本lambda语法
square = lambda x: x ** 2
print(square(5))  # 25

# 在排序中使用lambda
persons = [{'name': '张三', 'age': 30}, 
           {'name': '李四', 'age': 25},
           {'name': '王五', 'age': 35}]

# 按年龄排序
sorted_persons = sorted(persons, key=lambda x: x['age'])
print(sorted_persons)
# 输出: [{'name': '李四', 'age': 25}, {'name': '张三', 'age': 30}, {'name': '王五', 'age': 35}]

函数最佳实践

1. 使用文档字符串(Docstrings)

def calculate_area(radius):
    """计算圆的面积
    
    参数:
        radius (float): 圆的半径
        
    返回:
        float: 圆的面积
    """
    import math
    return math.pi * radius ** 2

可以通过help(calculate_area)查看文档

2. 类型提示(Type Hints)

Python 3.5+ 支持类型提示,提高代码可读性:

def add_numbers(a: int, b: int) -> int:
    """返回两个整数的和"""
    return a + b

总结

掌握Python函数定义是成为高效Python程序员的关键步骤:

  • 使用def关键字定义函数
  • 灵活使用各种参数类型:位置参数、默认参数、可变参数
  • 使用return返回值,可返回多个值
  • 合理使用全局变量和局部变量
  • 简单函数可使用lambda表达式
  • 编写文档字符串和类型提示提高代码可读性

发表评论