Question:
In my code I have to ask users some input. When a condition is met the program should stop running!ALIVE = True
def you_died():
global ALIVE
ALIVE = False
def some_input():
choice = input()
if choice == "yes":
you_died()
while ALIVE is True:
some_input()
print("some string")
Why is my code still printing “some string” even though the variable ALIVE is False?How to break the loop from inside the function?
Answer:
While conditions are evaluated once per iteration so changing the variable that is used in the condition won’t cause it to immediately break. Also, you can’tbreak
from within a function. BUT you CAN test your global after calling your function and break if it isn’t true before performing any other steps in your while loop:ALIVE = True
def you_died():
global ALIVE
ALIVE = False
def some_input():
choice = input()
if choice == "yes":
you_died()
while ALIVE is True:
some_input()
if not ALIVE: break
print("some string")
If you have better answer, please add a comment about this, thank you!