Nessa terceira tela estamos tentamos dividir um número inteiro por uma string. Aqui também o compilador Python detectou uma exceção quando o script requisitou na linha 2 um número inteiro e entramos com a string ‘dois’. O programa foi travado nessa linha, como podemos observar com a indicação da seta verde; as linhas seguintes sequer foram executadas. Aqui temos uma exceção chamada de ValueError: não se pode fazer operações matemáticas entre tipos diferentes, aqui um inteiro com uma string. Lembre-se de que exceções são os erros que só são detectados quando o programa já está sendo executado.
O Python não pode ‘adivinhar’ por si só se o usuário vai digitar o tipo correto exigido pelo programa. Mas veremos mais adiante que o programador do código fonte, este sim, pode tentar prever uma entrada errada pelo usuário e, se antecipando ao fato, caso ocorra uma entrada errada, criar uma mensagem de alerta pedindo ao usuário a entrada correta, sem travar o programa em execução.
Continuando, vamos incluir um laço de repetição if…else no script que temos no Colab, agora forçando intencionalmente erros de sintaxe muitos comuns. Veja a tela a seguir.
Tente o leitor descobrir, observando o alerta do Python, onde está o erro. Dica: Veja o apontador de erros: o sinal circunflexo que aparece na mensagem.
Como no exemplo anterior, o programa nos pede para entrar com dois números inteiros; mas agora tenta nos dizer se o resultado da divisão de um pelo outro é maior ou igual a 3. Quando tentamos compilar esse script um erro de sintaxe ocorre na linha 6. Veja que o compilador nos aponta onde está o erro: esquecemos de colocar os dois pontos exigidos pelo laço if…else logo depois do else. Corrija o erro no código e o execute de novo o script para o ver funcionando normalmente.
Outros erros comuns durante a criação do código fonte são: primt() – com ‘m’ em vez de ‘n’; esquecer o recuo de 4 espaços (Tab) na estrutura de laços de repetição; não converter para número inteiro com a função int() a entrada string na função input(); fazer uma operação lógica ou matemática sem declarar uma das variáveis; operações lógicas ou matemáticas entre tipos diferentes; tentar usar uma biblioteca sem antes importá-la.