自定义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
相关产品推荐
相关产品推荐

