05 - 函数基础

想系统提升编程能力、查看更完整的学习路线,欢迎访问 AI Compass:https://github.com/tingaicompass/AI-Compass

仓库持续更新刷题题解、Python 基础和 AI 实战内容,适合想高效进阶的你。

05 - 函数基础

学习目标: 掌握函数的定义、参数和返回值


💻 代码示例

1. 定义和调用函数

python 复制代码
# 定义函数
def greet():
    print("Hello!")

# 调用函数
greet()  # Hello!

# 带参数的函数
def greet_name(name):
    print(f"Hello, {name}!")

greet_name("Alice")  # Hello, Alice!

# 带返回值的函数
def add(a, b):
    return a + b

result = add(3, 5)
print(result)  # 8

2. 参数类型

python 复制代码
# 位置参数
def power(base, exp):
    return base ** exp

print(power(2, 3))  # 8

# 默认参数
def greet(name="Guest"):
    print(f"Hello, {name}!")

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

# 关键字参数
def introduce(name, age, city):
    print(f"{name}, {age}岁, 来自{city}")

introduce(name="Alice", age=20, city="Beijing")
introduce(city="Shanghai", name="Bob", age=21)

# 可变参数*args
def sum_all(*nums):
    return sum(nums)

print(sum_all(1, 2, 3))     # 6
print(sum_all(1, 2, 3, 4, 5))  # 15

# 关键字可变参数**kwargs
def print_info(**kwargs):
    for key, value in kwargs.items():
        print(f"{key}: {value}")

print_info(name="Alice", age=20, city="Beijing")

3. lambda匿名函数

python 复制代码
# 普通函数
def square(x):
    return x ** 2

# lambda函数(一行定义)
square = lambda x: x ** 2

print(square(5))  # 25

# 常用于sorted的key参数
words = ["banana", "apple", "cherry"]
sorted_words = sorted(words, key=lambda w: len(w))
print(sorted_words)  # ['apple', 'banana', 'cherry']

# 多个参数
add = lambda a, b: a + b
print(add(3, 5))  # 8

🎯 在算法题中的应用

python 复制代码
# 第1课:两数之和
def twoSum(nums, target):
    seen = {}
    for i, num in enumerate(nums):
        if target - num in seen:
            return [seen[target - num], i]
        seen[num] = i
    return []

# 第40课:二叉树最大深度(递归)
def maxDepth(root):
    if not root:
        return 0
    return max(maxDepth(root.left), maxDepth(root.right)) + 1

# lambda在排序中应用
intervals = [[1,3], [2,6], [8,10]]
intervals.sort(key=lambda x: x[0])  # 按第一个元素排序

🎓 小结

def function_name(params): 定义函数

return value 返回值

✅ 默认参数、关键字参数

lambda 匿名函数

下一步 : 06-列表list.md


如果这篇内容对你有帮助,推荐收藏 AI Compass:https://github.com/tingaicompass/AI-Compass

更多系统化题解、编程基础和 AI 学习资料都在这里,后续复习和拓展会更省时间。

相关推荐
HugoStudio_SWAN13 分钟前
洛谷 B4500 / B4449 / B3843 凯撒密码、密码强度与密码合规——加密与安全的三道门
c++·学习·程序人生·算法·安全
枫叶林FYL1 小时前
【群体智能集群控制工程实践】第3章 一致性协同算法
算法
禹凕1 小时前
滑动窗口算法实战指南
python·算法
DisonTangor2 小时前
【腾讯混元雪耻归来】 Hy4 preview:770B 参数 MoE 旗舰模型,1M 上下文全面开源
人工智能·算法·开源·aigc·腾讯云·腾讯云ai代码助手
明月_清风3 小时前
从二叉树到 B+ 树:一文搞懂工程中「树」的演化之道
数据结构·算法·go
渡我白衣3 小时前
并查集:基础认识与模拟实现
android·java·javascript·数据结构·c++·算法·并查集
hetao17338373 小时前
2026-09-01~09-04 hetao1733837 的刷题记录
c++·算法
Evand J3 小时前
【MATLAB例程,图像滤波5】 反谐波均值滑动窗口滤波(CHMF)图像降噪与质量评价,附代码下载链接
图像处理·算法·计算机视觉·matlab·均值算法·滑动窗口滤波·均值滑动
血小板要健康4 小时前
链表 阶段算法总结
java·数据结构·笔记·算法·leetcode·链表
a187927218314 小时前
【算法】回溯算法(三):三记重锤与 N 皇后——记忆化、状态设计与三层漏斗
算法·leetcode·go·剪枝·回溯·n皇后·算法讲解