Python 为什么我会得到;“返回外部函数”;即使我的缩进是正确的?

Python 为什么我会得到;“返回外部函数”;即使我的缩进是正确的?,python,return,Python,Return,有人知道为什么我会得到缩进错误,即使它(应该)是正确的吗 while not stop: try: response += sock.recv(buffer_size) if header not in response: print("error in message format") return # this is where I get the error except

有人知道为什么我会得到缩进错误,即使它(应该)是正确的吗

while not stop:
    try:
        response += sock.recv(buffer_size)
        if header not in response:
            print("error in message format")
            return # this is where I get the error 
    except socket.timeout:
        stop = True
错误代码python3 ueb02.py本地主机31000文件“ueb02.py”,第40行返回^SyntaxError:'return'外部函数make:**[run]错误1


编辑:谢谢你的回答,@balderman的方法解决了我的问题。感谢这里的每一位贡献者:D

只有当代码是函数的一部分时,才可以使用
return

如果要停止程序流,请使用
sys.exit()


请参见您只能
从函数返回值。

为了解决您的问题,您可以使用
break
语句和
print
值来代替return。

我们所拥有的只是您显示给我们的内容,而您显示给我们的代码中没有任何函数。据我们所知,这个错误是正确的。它看起来像是在一个循环中,而不是在函数中,请将它放在函数/方法中。你的意思是
中断
?@DeepSpace我还应该添加什么?它告诉我错误在这个循环中…@quamrana no。如果我使用break,程序将在之后继续执行我希望避免的操作。如果“报头未响应”,程序应立即结束。Break只会离开循环:(我知道-应该是Break。但是循环之后仍然有代码,如果“header没有响应”,这会产生不想要的结果。)这就是为什么我想退出整个程序。在这种情况下,正如@balderman所建议的,您可以使用sys.exit()。