When running the following code (in Python 2.7.1 on a mac with Mac OS X 10.7)
while True: return FalseI get the following error
SyntaxError: 'return' outside functionI've carefully checked for errant tabs and/or spaces. I can confirm that the code fails with the above error when I use the recommended 4 spaces of indentation. This behavior also happens when the return is placed inside of other control statements (e.g. if, for, etc.).
Any help would be appreciated. Thanks!
34 Answers
The return statement only makes sense inside functions:
def foo(): while True: return False 5 Use quit() in this context. break expects to be inside a loop, and return expects to be inside a function.
To break a loop, use break instead of return.
Or put the loop or control construct into a function, only functions can return values.
0As per the documentation on the return statement, return may only occur syntactically nested in a function definition. The same is true for yield.