Форум сайта python.su
0
Не пойму почему получается именно так? Логику цикла объясните пожалуйста на пальцах
i = 0
while i < 5:
print('*')
if i % 2 == 0:
print('**')
if i > 2:
print('***')
i = i + 1
*
**
*
*
**
*
***
*
**
***
Отредактировано JOHN_16 (Июнь 5, 2018 13:51:40)
Офлайн
221
rin81
код надо постить в тегах code
Офлайн
1
Странно, что Вам это не понятно. Переведите на русский язык и прогоните скрипт в голове:
i=0
рисуем звездочку на каждый проход цикла
проверяем 0 на четность (деление на 2 без остатка: i%2==0)
0 четное, значит рисуем 2 зведочки
проверяем, 0 больше 2? не-а, пропускаем
увеличиваем i, теперь там 1, 1 меньше 5 - повторяем цикл
рисуем звездочку на очередной проход цикла
проверяем 1 на четность, не-а, пропускаем
проверяем, 1 больше 2? не-а, пропускаем
увеличиваем i, теперь там 2, 2 меньше 5 - повторяем цикл
рисуем звездочку на очередной проход цикла
проверяем 2 на четность, рисуем 2 звездочки
проверяем, 2 больше 2? не-а, пропускаем
увеличиваем i, теперь там 3, 3 меньше 5 - повторяем цикл
рисуем звездочку на очередной проход цикла
проверяем 3 на четность, не-а, пропускаем
проверяем, 3 больше 2? да, рисуем 3 звездочки
увеличиваем i, теперь там 4, 1 меньше 5 - повторяем цикл
рисуем звездочку на очередной проход цикла
проверяем 4 на четность, рисуем 2 звездочки
проверяем, 4 больше 2? да, рисуем 3 звездочки
увеличиваем i, теперь там 5, 5 не меньше 5, цикл закончен
Итого, по проходам:
i=0
*
**
i=1
*
i=2
*
**
i=3
*
***
i=4
*
**
***
Офлайн