【Python 基础速通指南】第五章:Python 函数

Python 函数

函数是组织好的、可重复使用的、用于实现单一或相关联功能的代码段。函数能提高代码的模块化和可维护性。本文将详细介绍Python中的函数,包括函数的定义与调用、参数传递与返回值、匿名函数和递归函数。

函数的定义与调用

定义函数

在Python中,使用def关键字定义一个函数。函数名后跟一对圆括号,括号中可以包含参数列表,最后以冒号结尾。函数体缩进书写。

def greet():
    print("Hello, World!")

调用函数

定义好函数后,可以通过函数名加圆括号来调用它。

greet()  # 输出:Hello, World!

带参数的函数

可以在定义函数时指定参数,以便在调用时传递不同的值。

def greet(name):
    print(f"Hello, {name}!")

greet("Alice")  # 输出:Hello, Alice!
greet("Bob")    # 输出:Hello, Bob!

带默认参数的函数

可以为参数指定默认值,在调用时如果没有传递对应参数,则使用默认值。

def greet(name="Guest"):
    print(f"Hello, {name}!")

greet()         # 输出:Hello, Guest!
greet("Alice")  # 输出:Hello, Alice!

参数传递与返回值

位置参数

按顺序传递给定数量的参数。

def add(a, b):
    return a + b

result = add(2, 3)
print(result)  # 输出:5

关键字参数

通过参数名指定参数,可以不按顺序传递。

def add(a, b):
    return a + b

result = add(b=3, a=2)
print(result)  # 输出:5

可变长度参数

使用*args**kwargs可以处理不定数量的参数。

# *args 接受多个位置参数
def add(*args):
    return sum(args)

result = add(1, 2, 3, 4)
print(result)  # 输出:10

# **kwargs 接受多个关键字参数
def greet(**kwargs):
    for key, value in kwargs.items():
        print(f"{key} = {value}")

greet(name="Alice", age=25)
# 输出:
# name = Alice
# age = 25

返回值

使用return语句从函数返回一个值或多个值。

def add(a, b):
    return a + b

result = add(2, 3)
print(result)  # 输出:5

# 返回多个值
def get_name_and_age():
    name = "Alice"
    age = 25
    return name, age

name, age = get_name_and_age()
print(name)  # 输出:Alice
print(age)   # 输出:25

匿名函数(Lambda)

匿名函数也称为lambda表达式,是一种简短的定义小型匿名函数的方法。使用lambda关键字定义匿名函数。

# 定义一个lambda表达式,计算两个数之和
add = lambda x, y: x + y

result = add(2, 3)
print(result)  # 输出:5

# 在高阶函数中使用lambda表达式
numbers = [1, 2, 3, 4]
squared_numbers = list(map(lambda x: x ** 2, numbers))
print(squared_numbers)  # 输出:[1, 4, 9, 16]

递归函数(Recursive Function)

递归是指在运行的过程中调用自身。递归函数是指在其定义中调用自身的函数。递归必须有终止条件,否则会导致无限循环。

示例:计算阶乘

def factorial(n):
    if n == 0:
        return 1
    else:
        return n * factorial(n - 1)

result = factorial(5)
print(result)  # 输出:120

示例:斐波那契数列

def fibonacci(n):
    if n <= 0:
        return []
    elif n == 1:
        return [0]
    elif n == 2:
        return [0, 1]
    else:
        fibs = fibonacci(n - 1)
        fibs.append(fibs[-1] + fibs[-2])
        return fibs

result = fibonacci(10)
print(result)  
# 输出:[0,1,1,2,3,5,8,13,21,34]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值