Python中函数知识详解和示例

一、函数的概念(What is a Function)

函数是组织好的、可重复使用的代码块,用于实现特定的功能。函数能提高程序的模块化和复用性,是 Python 最基本的构造之一。


二、函数的定义与调用

1. 基本语法

def 函数名(参数1, 参数2, ...):
    """[可选]函数说明文档"""
    函数体
    return 返回值

2. 示例:最简单的函数

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

greet()  # 调用函数

三、参数详解(Function Parameters)

Python 函数支持多种参数类型:


1. 位置参数(Positional Arguments)

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

print(add(3, 5))  # 输出 8

2. 默认参数(Default Parameters)

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

greet()           # Hello, World!
greet("Alice")    # Hello, Alice!

✅ 默认参数必须放在位置参数之后


3. 可变参数(*args)

用于传入任意多个位置参数,在函数内部是一个 tuple

def total(*numbers):
    return sum(numbers)

print(total(1, 2, 3))  # 输出 6

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

接收任意多个关键字参数,在函数内部是一个 dict

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

print_info(name="Tom", age=18)

5. 参数组合(推荐顺序)

def func(a, b=0, *args, **kwargs):
    pass

顺序是:

位置参数 → 默认参数 → *args → **kwargs

四、变量作用域(Scope)

作用域决定变量的可访问范围


1. 局部变量(Local)

在函数内定义,只能在函数内访问。

def func():
    x = 10  # 局部变量
    print(x)

func()
# print(x)  # 报错:x 未定义

2. 全局变量(Global)

在函数外定义,整个文件都能访问。

x = 100

def show():
    print(x)  # 访问全局变量

show()

3. 修改全局变量

必须用 global 关键字:

count = 0

def increment():
    global count
    count += 1

increment()
print(count)  # 1

4. 闭包变量 & nonlocal

def outer():
    x = 10
    def inner():
        nonlocal x
        x += 1
        print(x)
    inner()

outer()  # 输出 11

五、返回值 return

return 用于从函数中返回值,函数执行到 return 就结束。


1. 返回一个值

def square(x):
    return x * x

2. 返回多个值(元组)

def stats(a, b):
    return a + b, a * b

s, p = stats(3, 4)
print(s, p)  # 输出:7 12

3. 没有 return 时默认返回 None


六、函数的注意事项与最佳实践

注意点说明
函数名应见名知意避免起名如 fun1do_stuff
使用文档字符串"""说明""" 描述函数用途
避免参数命名与全局变量冲突否则容易混淆作用域
多返回值建议用解构接收如:a, b = func()
函数不要做太多事单一职责,便于维护

七、实用示例大全


1. 递归函数(阶乘)

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

2. 判断质数

def is_prime(n):
    if n < 2:
        return False
    for i in range(2, int(n**0.5)+1):
        if n % i == 0:
            return False
    return True

3. 判断回文字符串

def is_palindrome(s):
    return s == s[::-1]

4. 函数嵌套

def outer():
    def inner():
        print("内部函数")
    inner()

5. 函数作为参数传递(高阶函数)

def apply(func, value):
    return func(value)

print(apply(abs, -5))  # 5

6. lambda 匿名函数(简写)

square = lambda x: x * x
print(square(4))  # 16

八、练习题推荐

  1. 编写一个函数判断一个字符串是否为回文。
  2. 实现一个支持可变数量数字求和的函数。
  3. 写一个函数将摄氏温度转换为华氏温度。
  4. 用函数实现“猜数字”游戏。
  5. 写一个递归函数打印斐波那契数列前 n 项。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

点云SLAM

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值