Your issue is that functions create their own namespace, which means that done
within the function is a different one than done
in the second example. Use global done
to use the first done
instead of creating a new one.
def function():
global done
for loop:
code
if not comply:
done = True
An explanation of how to use global
can be found here