Article image
Regilene Silva
Regilene Silva31/01/2024 14:00
Compartilhe

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.

Compartilhe
Comentários (3)
Ronaldo Schmidt
Ronaldo Schmidt - 31/01/2024 18:10

Muito bom seu artigo. Direto ao ponto e com uma didática fácil de entender.

Obrigado.

Regilene Silva
Regilene Silva - 31/01/2024 14:27

Oh, Gustavo! Eu cai no loop do coração infinito! kkkk Mas eu sou afobada, ja fui lendo e correndo pra fazer.

Gustavo Silva
Gustavo Silva - 31/01/2024 14:07

E não se esqueçam! Se caírem num loop infinito…

ctrl + c 😂