Olá, Viviane, como vai?
A lógica de repetição com o laço while funciona como uma verificação contínua de uma condição. A leitura que você propôs está correta, pois o programa interpreta o comando como enquanto a condição for verdadeira, execute o bloco de código abaixo. Se o contador inicia em 1 e a condição é contador <= 3, o laço será executado enquanto esse valor não ultrapassar 3.
O loop infinito ocorre quando a condição estabelecida nunca deixa de ser verdadeira. No Python, é necessário garantir que o valor testado seja alterado dentro do bloco de código. Caso a variável contador não seja atualizada, o sistema sempre encontrará o valor inicial, mantendo a repetição eternamente.
Imagine que temos uma variável carga iniciada em 0 e queremos que o processo pare ao atingir 100. O código seria escrito da seguinte forma:
carga = 0
while carga < 100:
carga += 10
print(carga)
Neste caso, a cada repetição o valor de carga aumenta em 10. Quando chegar em 100, a condição carga < 100 se torna falsa e o programa encerra o laço. Sobre o uso de contador++, é importante notar que em Python utilizamos a sintaxe contador += 1 para realizar o incremento, pois o operador de incremento duplo ( ++ ) não existe na linguagem.
Espero ter ajudado.
Siga firme nos seus estudos e conte com o fórum sempre que precisar.
Abraços :)
Caso este post tenha lhe ajudado, por favor, marcar como solucionado