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

自定义Python函数返回None问题求助:预期输出100却无结果

问题排查与修复方案

你的代码存在三个关键错误,导致结果不符合预期:

  • 错误使用比较运算符,且变量名与函数名冲突
    原代码里的square==(num**2)是比较操作(判断square和num²是否相等),而非赋值操作。同时用函数名square作为变量名会覆盖函数本身,导致后续调用逻辑混乱。

  • 函数内部递归调用逻辑错误
    你在square函数定义内部直接调用print(square(10)),这会触发无限递归——函数还没完成计算就反复调用自己,根本无法返回正确结果,而且这违背了函数的单一职责(函数应该只负责计算平方,打印操作应放在函数外部)。

  • 未返回计算结果
    原函数的return语句没有携带任何返回值,Python中函数默认返回None,所以外部调用print(square(10))会输出None。


修复后的代码如下:

def square(num):
    result = num ** 2
    return result

print(square(10))  # 输出100

或者更精简的写法:

def square(num):
    return num ** 2

print(square(10))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 08:52:33