Vamos tentar ver em qual situação é melhor usar o laço while ou for, sim, há uma enorme diferença entre while e for. Não é preferência. É uma questão de quais são suas estruturas de dados.


A instrução for itera por meio de uma coleção ou objeto iterável ou função geradora.


A instrução while simplesmente faz um loop até que uma condição seja False.



O for é a escolha mais Python para iterar uma lista, pois é mais simples e fácil de ler.


Por exemplo isso:


 

for i in range(11):

    print(i)

 


é muito mais simples e fácil de ler do que isso:


 

i = 0

 

while i <= 10:

    print(i)

    i = i + 1

   




for loop é usado quando você tem uma iteração definida (o número de iterações é conhecido).


Exemplo de uso:


- Iterar através de um loop com intervalo definido: 


for i in range(23):


- Iterar através de coleções (string, lista, set, tuple, dicionário): 


for livros in livros:


--------------------------------------------------------------------------------------------

while loop é uma iteração indefinida que é usada quando um loop se repete um número desconhecido de vezes e termina quando alguma condição é atendida.


Observe que, no caso de loop while, o corpo recuado do loop deve modificar pelo menos uma variável na condição de teste, caso contrário, o resultado é um loop infinito.


Exemplo de uso:


- A execução do bloco de código requer que o usuário insira a entrada especificada: 

while entrada == entrada_especificada:


- Quando você tem uma condição com operadores de comparação: 

while contador < limite and parar != False: