Seção 5.1 — Contando ocorrências com while
O poder das repetições é muito mais interessante quando combinamos while com if. Imagine imprimir apenas os números pares entre 0 e um valor digitado. Podemos usar o operador % (resto da divisão) para verificar se um número é par:
Note que o if dentro do bloco do while precisa de recuo adicional. O x = x + 1 é executado em toda repetição, independentemente do if.
Uma solução mais simples: em vez de verificar se é par, já avançar de 2 em 2:
Isso mostra que existe mais de uma solução para o mesmo problema. Podemos escrever programas diferentes e obter a mesma saída.
Veja um programa que imprime a tabuada de um número digitado pelo usuário:
Contadores também são úteis dentro de condições. Vejamos um programa que corrige um teste de múltipla escolha com 3 questões. A resposta da questão 1 é "b", da 2 é "a" e da 3 é "d":
💡 O operador += é uma abreviatura: questão += 1 é o mesmo que questão = questão + 1. Em Python, letras minúsculas e maiúsculas são diferentes: "b" ≠ "B". Por isso, o programa não aceita respostas em maiúsculas.
Modifique a Listagem 5.8 para imprimir de 1 até o número digitado pelo usuário, mas, dessa vez, apenas os números ímpares.
Reescreva o programa anterior para escrever os 10 primeiros múltiplos de 3.
Altere a Listagem 5.9 para exibir os resultados no mesmo formato de uma tabuada: 2x1 = 2, 2x2 = 4, ...
Modifique a Listagem 5.9 de forma que o usuário também digite o início e o fim da tabuada, em vez de começar com 1 e terminar com 10.
Escreva um programa que leia dois números. Imprima o resultado da multiplicação do primeiro pelo segundo. Utilize apenas os operadores de soma e subtração para calcular o resultado. (Dica: multiplicação é uma soma repetida.)
Escreva um programa que leia dois números. Imprima a divisão inteira do primeiro pelo segundo, assim como o resto da divisão. Utilize apenas os operadores de soma e subtração para calcular o resultado. (Dica: a divisão inteira é quantas vezes subtraimos o divisor do dividendo até ficar menor que ele.)
Modifique o programa da Listagem 5.10 para que aceite respostas com letras maiúsculas e minúsculas em todas as questões. (Dica: use o operador or.)