• 能接受不同数量、类型的输入参数;
  • 能根据情况返回一个或多个结果。

本节我们将深入学习 函数的参数类型返回值机制,让你掌握函数的核心逻辑与应用技巧。


一、函数参数的作用

参数是函数与外部数据沟通的桥梁。 通过参数,函数可以在不同场景下复用同一逻辑,而不必重复编写相似的代码。


二、函数参数的类型

Python 的函数参数非常灵活,主要分为以下几类:

1. 位置参数(Positional Arguments)

最常见的参数类型,调用时必须按顺序传值。

def greet(name, age):
    print(f"你好,{name},你今年 {age} 岁啦!")

greet("小明", 18)

2. 关键字参数(Keyword Arguments)

调用函数时可以通过指定参数名来传值,顺序可以不同。

def show_info(name, city):
    print(f"{name} 来自 {city}")

show_info(city="北京", name="小红")

这种方式可读性更强,尤其适合参数较多的函数。


3. 默认参数(Default Arguments)

给参数设置默认值,使函数更灵活。

def connect(host="localhost", port=3306):
    print(f"正在连接服务器:{host}:{port}")

connect()                      # 使用默认值
connect("192.168.1.1", 8080)   # 传入新值

4. 可变参数(*args)

当不确定会传入多少个参数时,可以使用 *args。 它会将所有位置参数打包成一个元组。

def add(*nums):
    total = sum(nums)
    print("总和为:", total)

add(1, 2, 3)
add(5, 10, 15, 20)

输出:

总和为: 6
总和为: 50

5. 关键字可变参数(**kwargs)

当参数是键值对形式时,可以使用 **kwargs,它会将所有关键字参数打包成一个字典。

def show_user(**info):
    print(info)

show_user(name="小李", age=20, city="广州")

输出:

{'name': '小李', 'age': 20, 'city': '广州'}

6. 参数的组合使用

Python 支持在一个函数中混合使用多种参数类型:

def func(a, b=10, *args, **kwargs):
    print(a, b, args, kwargs)

func(1, 2, 3, 4, x=5, y=6)

输出:

1 2 (3, 4) {'x': 5, 'y': 6}

三、函数的返回值

函数通过 return 语句将结果返回给调用者。 返回值可以是任意类型,也可以是多个值。

1. 单个返回值

def square(x):
    return x * x

print(square(5))  # 25

2. 多个返回值(返回元组)

def calc(a, b):
    return a + b, a - b

result = calc(10, 3)
print(result)         # (13, 7)
sum_val, diff_val = calc(10, 3)
print(sum_val, diff_val)  # 13 7

Python 实际上是将多个值打包成一个元组返回的。


3. 无返回值(隐式返回 None)

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

result = greet("Tom")
print(result)

输出:

你好,Tom
None

当函数没有 return 时,Python 会自动返回 None


四、return 的执行特点

  1. 一旦执行 return,函数立即结束;
  2. 函数中可以有多个 return,但只会执行第一个被触发的;
  3. 可以用 return 提前结束函数逻辑。

示例:

def divide(a, b):
    if b == 0:
        return "除数不能为0"
    return a / b

print(divide(10, 2))  # 5.0
print(divide(10, 0))  # 除数不能为0

五、实战案例:购物结算函数

需求:

  • 接收任意数量的商品价格;
  • 计算总价;
  • 可选打折参数;
  • 返回最终金额。
def checkout(*prices, discount=1.0):
    """购物结算函数"""
    total = sum(prices)
    pay = total * discount
    return round(pay, 2)

print(checkout(100, 200, 300))
print(checkout(100, 200, 300, discount=0.9))

输出:

600.0
540.0

六、总结

参数类型特点示例
位置参数按顺序传值func(1, 2)
关键字参数指定参数名func(a=1, b=2)
默认参数设置默认值def func(a=1)
可变参数接收任意数量的位置参数*args
关键字可变参数接收任意数量的键值参数**kwargs

七、小结

  • 参数让函数更加灵活,return 让函数能输出结果;
  • *args**kwargs 是 Python 的“可扩展接口”;
  • 返回值可以是任何类型,甚至是函数本身(这将在高阶函数中讲到);
  • 写函数时,应保持输入清晰、返回明确、逻辑单一。

结语: 掌握函数的参数与返回值,你就能编写出灵活、可复用的代码模块。

本站提供的所有下载资源均来自互联网,仅提供学习交流使用,版权归原作者所有。如需商业使用,请联系原作者获得授权。 如您发现有涉嫌侵权的内容,请联系我们 邮箱:[email protected]