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

解决return outside of function报错,正确使用return满足作业要求

问题分析与解决方法

你的代码问题

你当前的代码中,return放在了play_game()函数的第一行,这会导致函数一执行就直接返回,后面的global rand、生成随机数和递归调用的代码完全不会运行。另外你遇到的return outside of function错误,是因为你把return写到了函数定义的外部——Python里return必须放在函数内部才合法。

正确实现思路

要让play_game()执行完逻辑后返回到main()中调用它的下一行,核心要点:

  • return要放在函数内部你想结束函数的位置,绝对不能放在函数外
  • 不要在函数开头就写return,要先让函数完成所需逻辑(比如生成随机数),再根据需求用return结束函数(不需要返回值的话也可以省略return,函数默认会返回None)

修正后的代码示例

方案1:无返回值,执行完逻辑后自然返回

import random

def play_game():
    # 无需使用global,直接生成随机数完成逻辑
    rand = random.randint(1, 10)
    print(f"生成的随机数:{rand}")
    # 函数执行到此处会自动返回,回到main()的调用位置

def main():
    print("调用play_game前")
    play_game()
    print("调用play_game后,回到这里执行后续语句")  # 这就是你需要的返回后执行的代码

if __name__ == "__main__":
    main()

方案2:返回随机数给main()

如果需要把生成的随机数传递回main(),可以让return携带返回值:

import random

def play_game():
    rand = random.randint(1, 10)
    return rand  # 在这里返回随机数,函数执行到此处结束,回到main()

def main():
    print("调用play_game前")
    result = play_game()
    print(f"调用play_game后,返回的随机数是:{result}")  # 接收返回值并处理

if __name__ == "__main__":
    main()

关键注意点

  • return必须放在函数内部,写在函数外面必定会触发return outside of function错误
  • 不要在函数逻辑执行前就写return,否则后续代码都不会被执行
  • 如果不需要返回数据,函数执行到末尾会自动返回,无需强制写return;如果需要给调用方传递数据,就在逻辑完成后写return 要返回的值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 05:42:45