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

Python函数间数据传递问题:调用input函数为何输出6而非36?

问题原因及解决方案

首先,咱们来拆解下你遇到的问题:你执行input(2,2,2)只得到6,没看到预期的36,核心原因很简单——你根本没调用calculator函数!

具体原因分析

  • 当你运行input(2,2,2)时,只是触发了input函数的执行:它计算三个参数的和(2+2+2=6),然后把这个结果返回给你。但你没有把这个返回值传递给calculator,所以calculator完全没机会运行,自然不会输出36。
  • 顺带提个小细节:你的input函数里的变量名df有点误导人,因为它实际是个整数,不是Pandas的DataFrame,不过这对当前问题没影响,只是个可以优化的命名小问题。

修改方案

我们需要把input函数的返回值传给calculator,同时建议你不要用input作为自定义函数名(会覆盖Python内置的input()函数,这个内置函数是用来获取用户输入的)。这里有两种常见的修改方式:

方式1:分步调用

import pandas as pd

# 重命名函数,避免覆盖内置input
def calculate_sum(param1, param2, param3 = 4):
    result = param1 + param2 + param3
    pd.options.display.float_format = '{:,.0f}'.format
    return result

def calculator(num):
    df2 = num * num
    print(df2)
    return df2  # 可选:返回结果方便后续复用

# 先获取求和结果,再传给计算器函数
sum_result = calculate_sum(2,2,2)
calculator(sum_result)

方式2:链式调用(更简洁)

直接把calculate_sum的返回值作为参数传给calculator:

# 调用时直接链式执行
calculator(calculate_sum(2,2,2))

运行上面的代码,你就能看到输出36了。

内容的提问来源于stack exchange,提问作者H. Meesral

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 06:30:22