Почему не работает цикл while в python?
Потому что True это 1, а не 10. Но приведение 10 к булеву значению даст 1. 
i = 10
while bool(i) == True:
    print(i)
Во втором варианте оно неявно приводится интерпретатором, поскольку while принимает на вход только булево значение.
Потому что True это 1, а не 10. Но приведение 10 к булеву значению даст 1. 
i = 10
while bool(i) == True:
    print(i)
Во втором варианте оно неявно приводится интерпретатором, поскольку while принимает на вход только булево значение.