for идёт по готовому набору. Но иногда неизвестно, сколько раз повторять: «вычитай, пока остаток больше нуля». Тогда нужен while — «повторяй, пока условие верно».
while условие: выполняет тело снова и снова, пока условие истинно. Внутри обязательно что-то меняет условие, иначе цикл никогда не кончится.
Делить 10 пополам, пока не станет ≤1: 10→5→2.5→1.25→0.625 — 4 шага.
n = 10
count = 0
while n > 1:
n = n / 2
count = count + 1
result = countЕсли условие никогда не станет ложным (забыл менять переменную) — цикл зациклится навсегда.
Дели n пополам (n = n / 2), пока не станет ≤1, и считай шаги. Для 100 должно выйти 7.