使用Return round(函数,1)给出语法错误

时间:2018-04-11 17:13:12

标签: python syntax-error

enter image description here

为什么python会给出 Sytanx错误''返回外部功能' 错误第35行:>>>>返回(temp_c,1)?我是初学程序员,我想存储我的传感器数据mysql。当你在我的函数和if语句中看到我的返回轮次(temp_c,1)时。  这是我的完整代码

导入操作系统     进口时间     导入日期时间     导入glob     import mysql.connector     来自mysql.connector导入错误代码     从时间导入strftime

os.system('modprobe w1-gpio')
os.system('modprobe w1-therm')

temp_sensor = '/sys/bus/w1/devices/28-000008a43c0e/w1_slave'


#Connect MySQL
#-----------------------------------------------------------------------------------

cnx = mysql.connector.connect(user='root',password='invoker',
                              host='localhost',
                              database='temp-at-interrupt')
cnx.close()

#
#Get Temperature Values.
#-----------------------------------------------------------------------------------
def tempRead():
    t = open(temp_sensor, 'r')
    lines = t.readlines()
    t.close()

temp_output = lines[1].find('t=')
if temp_output != -1:
    temp_string = lines[1].strip()[temp_output+2:]
    temp_c = float(temp_string)/1000.0
    return round(temp_c,1)


#Insert new data
#-----------------------------------------------------------------------------------
while True:
    print(temp)
    datatimeWrite = (time.strftime("%Y-%m-%d ") + time.strftime("%H:%M:%S"))
    print (datetimeWrite)
    sql = ("""INSERT INTO tempLog (datetime,temperature) VALUES (%s,%s)""",(datetimeWrite,temp))
try:
    print ("Writing to database...")
# Execute the SQL command
    cur.execute(*sql)
# Commit your changes in the database
    db.commit()
    print ("Write Complete")

except:
# Rollback in case there is any error
    db.rollback()
    print ("Failed writing to database")

cur.close()
db.close()
break

1 个答案:

答案 0 :(得分:1)

你不能在函数中使用return,这是非法的Python(和大多数编程语言)语法。

if temp_output != -1:
    temp_string = lines[1].strip()[temp_output+2:]
    temp_c = float(temp_string)/1000.0
    return round(temp_c,1)  # <---- problematic return statement outside a function

我相信这个if块是tempRead()函数的一部分,所以修复是删除if块之前的空行,并识别{{1}中的所有代码1}}阻塞4个空格:

if