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

为何变量myNum指向2而非8?Python函数return语句问题咨询

问题分析与解答

先看你的代码:

def countby2(aNum):
  count = 0 
  for i in range(aNum):
     count += 2 
     return count  # 问题核心所在
  return count 

myNum = countby2(4) 

关键原因:return的位置错误

  • 当return count写在for循环内部时,函数会在第一次循环迭代时就触发return,直接终止函数并返回当前的count值(也就是2),后面的3次循环迭代根本没机会执行。
  • 换成print时,函数不会提前终止,循环会完整执行4次:每次count +=2后打印数值,最后count确实会变成8,但此时函数没有return语句,所以myNum实际是None——你看到的8是打印输出的结果,并非myNum的值,这点可能你之前误解了。

修正方案

把return count移到for循环外面,让循环执行完所有迭代后,再返回最终的累计值:

def countby2(aNum):
  count = 0 
  for i in range(aNum):
     count += 2 
  return count  # 移至循环外部

myNum = countby2(4) 
print(myNum)  # 此时会输出预期的8

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 00:02:31