You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何传递更新后的m值给目标函数,使其重新计算z值?

看起来你卡在了函数参数传递的问题上——你的r(x,y)函数里把m硬编码成1了,不管你在n()里怎么更新m的值,调用r的时候它都会重新初始化m=1,自然没法用上你更新后的m。

解决思路很简单:把m改成r函数的参数,让它从外部接收m的值,而不是自己内部固定死。

修改后的代码实现

  1. 重构r函数,添加m作为参数:
def r(x, y, m):
    z = x + y + m
    return m, z

现在r不再自己定义m,完全使用我们传入的数值来计算z。

  1. 更新n()函数的逻辑,把修改后的m传递给r:
def n():
    # 第一次调用r,初始m设为1
    m, z = r(3, 4, 1)
    if z < 150:
        # 计算更新后的m值
        updated_m = m + 1
        # 把新的m传给r,这里x和y用你原来的5、6完全没问题
        m1, z1 = r(5, 6, updated_m)
    print(m, m1, z1)

现在运行n()的话,第二次计算的z1就是5+6+2=13,而不是原来固定m=1时的12,完全符合你的需求。

扩展:循环更新直到z满足条件

如果你的需求是循环递增m,直到z不小于150(而不是只更新一次),可以用while循环实现:

def n():
    m = 1
    # 先计算初始z
    current_m, z = r(3, 4, m)
    while z < 150:
        m += 1
        current_m, z = r(3, 4, m)
    print(f"满足条件时的m={current_m}, z={z}")

这段代码会自动递增m,直到z≥150为止。

内容的提问来源于stack exchange,提问作者julespuppy02

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 05:28:58