目录

1. 什么是函数?

2. 函数的定义(重点)

3. 函数的调用

4. 函数的参数(重点)

5. return(返回值)

6. 默认参数(偷懒神器)

7. 可变参数(*args 和 **kwargs)

1)*args:接收不确定数量的位置参数

2)**kwargs:接收“带名字”的参数

8. 函数的递归(重点+难点)

示例:计算阶乘

9. 总结


很多小白学 Python 的时候,最容易卡住的就是“函数”。

看起来好像很复杂,其实函数本质就一句话:

函数就是把一段代码封装起来,需要的时候直接用。

你不用每次都重写一遍代码,只需要“调用”它。

1. 什么是函数?

你可以把函数理解成一个“工具箱里的工具”。

比如你要算两个数的和:

print(1 + 2)
print(3 + 5)
print(10 + 20)

如果一直这样写,会很麻烦。

用函数可以这样写:

def add():
    print(1 + 2)

add()
add()

函数的作用就是:

把重复的代码打包起来,随时调用。

2. 函数的定义(重点)

Python定义函数的格式是:

def 函数名():
    函数体

比如:

def say_hello():
    print("你好,欢迎学习Python")

解释一下:

  • def:表示“我要定义函数”
  • 函数名:你自己起名字
  • 函数体:函数具体做什么

3. 函数的调用

定义完函数以后,不会自动执行。

必须“调用”才会运行:

def say_hello():
    print("你好")

say_hello()
say_hello()

输出:

你好
你好

记住一句话:

定义只是“准备”,调用才是“执行”

4. 函数的参数(重点)

如果函数只能做固定事情,那就太傻了。

参数的作用就是:

让函数可以接收不同的输入

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

add(3, 5)
add(10, 20)

输出:

8
30

解释:

  • a 和 b 就是“输入”
  • 不同输入会得到不同结果

5. return(返回值)

很多小白会混淆 print 和 return。

简单说:

  • print:只是打印
  • return:把结果“带出去”
def add(a, b):
    return a + b

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

输出:

8

重点理解:

如果你只 print,没有 return,那么结果不能被“保存”。

6. 默认参数(偷懒神器)

def greet(name="小白"):
    print("你好", name)

greet()
greet("张三")

输出:

你好 小白
你好 张三

不传参数就用默认值

7. 可变参数(*args 和 **kwargs)

有时候函数会遇到一个问题:

我不知道用户会传几个参数进来。

比如你要做一个“求和函数”,可能有人传2个数,也可能传5个数,甚至10个数。

如果你一个个写参数,会变成这样:

def add(a, b, c, d, e):
    ...

这种写法很快就会崩溃(而且很丑)。

1)*args:接收不确定数量的位置参数

def add(*args):
    print(args)

add(1, 2, 3)
add(10, 20, 30, 40)

输出:

(1, 2, 3)
(10, 20, 30, 40)

 本质理解:

  • *args 会把所有传进来的参数

  • 打包成一个元组(tuple)

实战:用 *args 做求和

def add(*args):
    total = 0
    for i in args:
        total += i
    return total

print(add(1, 2, 3))
print(add(10, 20, 30, 40))

输出:

6
100

2)**kwargs:接收“带名字”的参数

有时候你传的参数不是单纯的数字,而是这种:

name="张三", age=18

这时候就要用 **kwargs

def show(**kwargs):
    print(kwargs)

show(name="张三", age=18)

输出:

{'name': '张三', 'age': 18}

 本质理解:

  • **kwargs 会把参数

  • 打包成字典(dict)

8. 函数的递归(重点+难点)

递归就是:

函数自己调用自己

听起来很吓人,但本质就一句话:

 “重复做同一件事,直到结束”

示例:计算阶乘

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

print(factorial(5))

此代码即表示 5 * 4 * 3 * 2 * 1

输出:

120

递归要记住两个条件:

  1. 结束条件(必须有)
  2. 自己调用自己

如果没有结束条件:

👉 程序会无限调用,直接崩溃

9. 总结

函数的核心就三点:

  • 定义函数:def
  • 调用函数:函数名()
  • 参数 + return:让函数更灵活

递归只是函数的进阶玩法,本质还是“自己调用自己”。

更多推荐