Conversão de tipos em Python: While True ou try-except para iniciantes
- #Python
Tratando erros e orientando o usuário
Como iniciante em Python, muitas vezes tive dificuldade em construir uma lógica que orientasse o usuário na correção ou ajuste de uma entrada e sempre acabava optando por usar ‘While true’ , ou seja, criando um loop infinito, com um método de verificação, até que uma condição específica fosse atendida. Essa estrutura é muito útil para contornar entradas imprevisíveis do usuário, controlando o fluxo do programa e só aceitando a entrada quando ela atende a critérios específicos.
While true:
entrada = input(“Digite um número inteiro:”)
if entrada.isdigit():
numero=int(entrada)
if numero % 2 == 0:
print (“O número digitado é par”)
else:
print(“O número digitado é ímpar”)
else:
print(‘entrada inválida! Digite um número inteiro.Tente novamente!)
Nesse exemplo básico, ao usar ‘while true’ com a verificação do método ‘if entrada.isdigit(), estamos explicitamente controlando o loop para aceitar apenas entradas que consistem em dígitos. Se a entrada não atender a esse critério, o código dentro do bloco ‘else’ solicitará ao usuário uma entrada válida e continuará executando o loop até que a condição específica seja atendida.
No entanto, ao lidar com a conversão de tipos, como é o caso, a estrutura não captura exceções de forma tão precisa quanto 'try-except', que pode ser mais abrangente ao lidar com possíveis erros de conversão.
entrada = input("Digite um número inteiro:")
try:
numero = int(entrada)
if numero % 2 == 0:
print("O número digitado é par.")
else:
print("O número digitado é ímpar.")
except ValueError:
print("Entrada inválida! Digite um número inteiro.")
No exemplo acima, o bloco ‘try’ tenta converter a entrada para um número inteiro. Se essa conversão falhar (um ValueError ocorrer), o bloco 'except' é executado, imprimindo uma mensagem de erro. Em resumo, você usa a estrutura 'try-except' para tentar a conversão e capturar explicitamente a exceção (ValueError ) se a entrada não puder ser convertida para um número inteiro. Logo, o bloco except é acionado apenas se a exceção ocorrer. O 'ValueError’ é uma classe específica de exceção em Python e é frequentemente utilizada para tratar erros relacionados à conversão de tipo.
While true ou Try-except:
Ambas abordagens garantem que o programa lide de maneira controlada com entradas inválidas, a escolha de qual estrutura usar se resume a escolha do programador, no entanto, em muitos casos, usar 'try-except' pode tornar o código mais limpo e legível, especialmente quando você está lidando com exceções específicas e tentando converter tipos. O importante é, em caso de erro, o usuário compreender o aviso, realizar a alteração e repetir a operação de maneira acertada.
While true e try-except:
while True:
try:
entrada = input("Digite um número inteiro: ")
numero = int(entrada)
if numero % 2 == 0:
print("O número digitado é par.")
else:
print("O número digitado é ímpar.")
break
except ValueError:
print("Entrada inválida! Digite um número inteiro. Tente novamente.")
Nesse exemplo, o bloco 'try' tenta converter a entrada para um número inteiro. Se a conversão for bem-sucedida, ele verifica se o número é par ou ímpar e imprime a mensagem correspondente. Se a entrada não for um número inteiro válido, o bloco 'except ValueError' é acionado, e uma mensagem de erro é impressa, pedindo que o usuário forneça uma entrada válida. E o loop continua até que uma entrada válida seja fornecida.
Espero com esse conteúdo contribuir para o entendimento de pessoas iniciantes em Python, assim como eu.