国际访客建议访问 Primers 编程伙伴 国际版站点 > Python 教程 > 创建和调用函数 以获得更好的体验。

# Python 创建和调用函数

在编写程序时,会有很多相似的代码。例如,在游戏战斗中攻击造成伤害的计算方式为 \($ 伤害 = 攻击力 \times (1 - \frac{防御力}{防御力 + 100}) \)$。

我们只需要在每次计算伤害时带入 攻击力 和 防御力 的数值来计算伤害,而上述计算公式可以通过 函数(Function) 进行复用。

函数的创建与调用方法 如下:

# 创建函数
def 函数名(形式参数1, 形式参数2, ...) -> 返回值类型:
    函数体

# 调用函数
函数名(实际参数1, 实际参数2, ...)

函数可以没有参数和返回值,没有返回值时返回 None

参考:Python 官方文档

上述伤害计算公式即可封装为:

运行示例

# 创建函数
def attack(attack_power:float, defense_power:float):
    # 计算伤害
    damage:float = attack_power * ( 1 - defense_power / (defense_power + 100))
    print(f"造成了 {damage} 点伤害")

# 调用函数
attack(100, 0)
attack(100, 10)
attack(100, 20)

# 返回值

返回值通过 return 关键字返回,例如:

运行示例

def attack(attack_power:float, defense_power:float) -> None:
    # 计算伤害
    damage:float = attack_power * ( 1 - defense_power / (defense_power + 100))

    # 返回伤害
    return damage

# 获取返回值
damage:float = attack(100, 0)
print(f"伤害为 {damage}")

函数可以返回多个值,但实际上是返回了一个 元组,例如:

运行示例

def attack(attack_power:float, defense_power:float) -> None:
    # 计算伤害
    guard:float = attack_power * defense_power / (defense_power + 100)  # 防御力减少的伤害
    damage:float = attack_power - guard                                 # 实际伤害

    # 等价于 return (damage, guard) 返回元组
    return damage, guard

# 获取返回值
damage, guard = attack(100, 20)                             # 元组解包语
print(f"伤害为 {damage}, 防御降低了 {guard} 点伤害")
本文 更新于: 2025-06-19 01:15:27 创建于: 2025-06-19 01:15:27