Why the following while loop is exited when x reaches 0?
x = 1
while x:
    print(x)
    x -= 1
It prints only 1. Shouldn't the while statement be something like: while x "is something": and not just while x:?
Why the following while loop is exited when x reaches 0?
x = 1
while x:
    print(x)
    x -= 1
It prints only 1. Shouldn't the while statement be something like: while x "is something": and not just while x:?
 
    
    Because bool(0) => False, and bool(x) for x!=0 => True, so it's like saying while x!=0 or while x>0 in your case.
 
    
    In boolean, none zero value means 'true' and 0 means 'false'. The code reaches the argument while(0) or while(false) and terminate the body
