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

Python语法错误求助:return outside function报错及round函数使用问题

解决Python传感器数据存MySQL时的两个语法问题

看起来你在处理温度传感器数据并写入MySQL时遇到了两个典型的Python语法/缩进问题,我来帮你逐一梳理:

1. return round(function,1)的语法错误

这里的问题很明确:round()函数的第一个参数需要是数值类型(比如整数、浮点数),而你写的function是一个函数名(或者拼写错误的变量名),不是一个具体的数值。

举个正确的例子:如果你的代码里有一个获取原始温度的函数,比如read_raw_temp(),那你应该先调用这个函数拿到数值,再传入round():

def get_rounded_temp():
    raw_temp = read_raw_temp()  # 调用函数获取原始温度数值
    return round(raw_temp, 1)   # 对数值进行四舍五入保留1位小数

如果是变量名写错了,比如本来应该是temp_value却写成了function,那修正变量名即可。

2. "RETURN OUTSIDE FUNCTION"错误

Python对缩进的要求极其严格——哪怕你的代码“看起来”在函数和if内部,只要缩进级别不对,解释器就会判定return在函数外。

比如下面的错误示例(缩进错误):

def get_temp_c():
    # 读取传感器数据的代码...
if temp_c > 0:
    return round(temp_c,1)  # 这里的缩进和def对齐,不在函数内部!

正确的缩进应该是这样的(用4个空格缩进,不要混用tab):

def get_temp_c():
    # 读取传感器数据的代码,比如从/sys/bus/w1/...读取
    temp_c = 25.678  # 示例数值
    if temp_c is not None:
        return round(temp_c, 1)  # 这个return在函数和if的缩进块内
    else:
        return None  # 处理异常情况

你可以检查第35行return的缩进:它应该比外层的def多4个空格,同时和所在的if语句块保持相同缩进级别。如果之前用了tab,建议统一换成4个空格,避免缩进混乱。

另外,如果你是在脚本的全局代码里写了return(不在任何def定义的函数内),那也会触发这个错误——return只能用在函数内部哦。

内容的提问来源于stack exchange,提问作者Njord Nyström

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:46:04