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

Python报SyntaxError: 'return' outside function错误如何解决

代码问题修复说明

你当前运行抛出的SyntaxError: 'return' outside function报错,核心原因是return关键字仅能在函数定义内部使用,你在全局作用域直接写return语句,不符合Python语法规则。
除此之外你的代码还存在多处会导致运行异常/逻辑错误的问题,逐一列示:

  • 模块导入位置错误:import random写在while循环内部,每次循环都会重复执行导入操作,属于冗余写法,应放在代码开头位置
  • 随机数方法名错误:random模块生成区间整数的方法为random.randint(最小值, 最大值),你写的random.int()是不存在的方法,运行时会触发属性错误
  • 变量拼写错误:计数累加时你写的是gueses = gueses +1,和初始化定义的变量名guesses不一致,少写了一个s,运行时会触发变量未定义错误
  • 循环逻辑错误:
    1. 第一次进入while循环做判断时,compnum还没有被赋值,直接做相等判断会触发变量未定义错误
    2. 你写的分支逻辑是只要电脑没猜对就执行return,完全起不到循环猜数的作用
  • 输入校验逻辑漏洞:现有逻辑最多校验两次输入,如果用户第二次还是输入超出1-10范围的数字,程序不会终止,会继续往下执行猜数流程,和你写的提示语预期不符

修正后可直接运行的代码

import random

guesses = 0
# 循环校验输入,直到拿到合法范围的数字再进入猜数环节
while True:
    usernum = int(input("pick a number between 1 and 10"))
    if 1 <= usernum <= 10:
        break
    guesses += 1
    if guesses >= 2:
        print("You failed... again. wow thats sad just restart the program")
        exit()
    print("That number is bigger than 10 or smaller than 1. Try again")

print("okay now i will find what your number is...")
compnum = 0
# 未猜对时持续循环生成随机数
while compnum != usernum:
    compnum = random.randint(1, 10)
    guesses += 1

# 猜对后输出结果
print(f"Found your number! It's {compnum}, I took {guesses} guesses in total.")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 07:24:38