Python tem dois tipos de ciclos - ciclos for e ciclos while. Enquanto os ciclos for iteram sobre uma lista (iterável) elemento por elemento, um ciclo while, por outro lado, repete as instruções dentro do seu corpo enquanto a condição no enunciado while for satisfeita. Nesse sentido, é muito semelhante a um enunciado if. Executa as instruções dentro do ciclo while caso a condição seja satisfeita:
i = 0
while i < 5:
print('Current i is:', i)
i += 1
print('Done')
Current i is: 0
Current i is: 1
Current i is: 2
Current i is: 3
Current i is: 4
Done
The program on the left will print this output
Inicialmente, atribuímos o valor 0 a i ⇒ i = 0.
Em seguida, o programa verifica se i < 5 e, como 0 < 5, entra no corpo do ciclo while.
O programa imprime Current i is: 0
A variável i incrementa em 1, tornando-se i = 1
O programa volta à condição e verifica se i < 5. Como 1 < 5 ⇒ entra no corpo do ciclo while.
O programa imprime Current i is: 1
A variável i incrementa em 1, tornando-se i = 2
O programa verifica se i < 5. 2 < 5 ⇒ entra no corpo do ciclo while
O programa imprime Current i is: 2
A variável i incrementa em 1, tornando-se i = 3
O programa verifica se i < 5. 3 < 5 ⇒ entra no corpo do ciclo while
O programa imprime Current i is: 3
A variável i incrementa em 1, tornando-se i = 4
O programa verifica se i < 5. 4 < 5 ⇒ entra no corpo do ciclo while
O programa imprime Current i is: 4
A variável i incrementa em 1, tornando-se i = 5
O programa verifica se i < 5. 5 = 5 ⇒ O programa sai do ciclo while e imprime Done
Desafio
Dado um inteiro positivo n. Imprima o valor de n enquanto for maior que 0 e divida-o por 2 (considerando apenas a parte inteira).