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()。