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

Python代码输出异常:为何返回16而非(16, 2)?

问题分析与解决

你的代码之所以只输出16而非预期的(16, 2),核心原因是sq函数只返回了func(y)的计算结果,完全没有把参数x的值包含在返回内容里。

看原代码里的sq函数:

def sq(func,x):
    y = x**2
    return func(y)  # 这里只返回了f(y)=f(4)=16,x的值根本没被返回

要得到(16, 2)的结果,只需要修改sq函数的返回语句,把func(y)和x打包成元组返回即可:

def sq(func,x):
    y = x**2
    return func(y), x  # 返回包含两个结果的元组

def f(x):
    return x**2

Calc = sq(f,2)
print(Calc)  # 此时输出 (16, 2)

在Python中,用逗号分隔多个返回值时,解释器会自动将它们封装成元组,这样Calc就会接收这个元组,打印时自然会输出(16, 2)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 11:36:14