狙击手僵尸3D
191.56MB · 2025-12-08
本节我们将深入学习 函数的参数类型 与 返回值机制,让你掌握函数的核心逻辑与应用技巧。
参数是函数与外部数据沟通的桥梁。 通过参数,函数可以在不同场景下复用同一逻辑,而不必重复编写相似的代码。
Python 的函数参数非常灵活,主要分为以下几类:
最常见的参数类型,调用时必须按顺序传值。
def greet(name, age):
print(f"你好,{name},你今年 {age} 岁啦!")
greet("小明", 18)
调用函数时可以通过指定参数名来传值,顺序可以不同。
def show_info(name, city):
print(f"{name} 来自 {city}")
show_info(city="北京", name="小红")
这种方式可读性更强,尤其适合参数较多的函数。
给参数设置默认值,使函数更灵活。
def connect(host="localhost", port=3306):
print(f"正在连接服务器:{host}:{port}")
connect() # 使用默认值
connect("192.168.1.1", 8080) # 传入新值
当不确定会传入多少个参数时,可以使用 *args。
它会将所有位置参数打包成一个元组。
def add(*nums):
total = sum(nums)
print("总和为:", total)
add(1, 2, 3)
add(5, 10, 15, 20)
输出:
总和为: 6
总和为: 50
当参数是键值对形式时,可以使用 **kwargs,它会将所有关键字参数打包成一个字典。
def show_user(**info):
print(info)
show_user(name="小李", age=20, city="广州")
输出:
{'name': '小李', 'age': 20, 'city': '广州'}
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 语句将结果返回给调用者。
返回值可以是任意类型,也可以是多个值。
def square(x):
return x * x
print(square(5)) # 25
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 实际上是将多个值打包成一个元组返回的。
def greet(name):
print(f"你好,{name}")
result = greet("Tom")
print(result)
输出:
你好,Tom
None
当函数没有 return 时,Python 会自动返回 None。
return,函数立即结束;return,但只会执行第一个被触发的;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 的“可扩展接口”;结语: 掌握函数的参数与返回值,你就能编写出灵活、可复用的代码模块。