1
resposta

Conversão de tipos

Antes da Alura, havia aprendido a conversão de tipos direto antes do input, acho muito mais prático!

age = int(input('How old are you?'))

def drive_permission(age):
    if age >= 18:
        print('You are able to drive!')
    else:
        print('You aren\'t able to drive!')

drive_permission(age)
1 resposta

Olá, Fernando! Tudo bem? Espero que sim

Ambos os métodos são equivalentes pra casos específicos de entradas simples.

Mas uma possibilidade notável de se utilizar o int() somente depois é o caso de não se ter certeza sobre a confiabilidade do que o usuário digitou. Por exemplo, se por algum motivo você pedir um campo de idade, como no exemplo acima, e o usuário digitar algo como:

>>> How old are you: 20#$

No exemplo acima, o usuário esbarrou sem querer no teclado, enviou a entrada 20#$ e deu Enter muito que rapidamente, não percebeu o erro.

O que acontece nesse caso? O código quebraria e seria retornado um ValueError. O erro abaixo:

ValueError: invalid literal for int() with base 10: '20#$'

O resumo da ópera acima aponta que é interessante fazermos a conversão direta sempre que confiamos bastante que a entrada (input) é um valor possível de ser convertido. Caso contrário, nós temos que passar para outras técnicas, como pedir novamente o input, ou então fazer alguma manipulação de string como tratamento até ter uma conversão possível.

Um exemplo possível seria varrer a string 20#$ e ignorar tudo o que não fosse um número. Tudo dependeria da situação.

Se ainda tiver alguma dúvida, estou por aqui. Ótimos estudos e grande abraço!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!