MisterCat
@MisterCat
Начинаю программировать.

Почему не работает цикл while в python?

Здравствуйте! Вопрос по циклам в python 3.9.
i = 10
while i == True:
    print(i)


Этот цикл ничего не выводит.

i = 10
while i:
    print(i)


А этот цикл работает и выводит бесконечно 10.

Почему первый цикл ничего не выводит, ведь для того чтобы цикл работал должно быть True. Раз второй цикл работает, значит i не равно False. Почему 2-ой цикл не работает?
  • Вопрос задан
  • 1493 просмотра
Решения вопроса 1
phaggi
@phaggi Куратор тега Python
лужу, паяю, ЭВМы починяю
Потому что True это 1, а не 10. Но приведение 10 к булеву значению даст 1.
i = 10
while bool(i) == True:
    print(i)

Во втором варианте оно неявно приводится интерпретатором, поскольку while принимает на вход только булево значение.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@Kadabrov
Из поиска читайте, изучайте
while

а вот еще очень полезный ответ от куратора тега

Истина в Python?
Ответ написан
@DimaKalinin
В первом варианте вы указали что i = 10, далее в цикле вы проверяли равно ли i - True, поскольку i у вас указано как число 10, то условие оказывается неверным и цикл не работает. Во втором варианте вы указали так же что i равно 10, но в цикле вы не указали условие которое должно выполняться для i - поэтому любое значение для i - верное, то-есть True, и цикл будет работать бесконечно
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы