O desafio era verificar um numero inteiro em entradas de dados inserido por usuário.
Na linguagem python dependendo da tua estratégia, é importante validar uma entrada feita pelo usuário, evitando problemas de dados inconsistentes e erros na execução do algoritmo.
Veja uma exemplo do que estou falando.
# ----------------------- início do código ------------------
print('\n')
print('#Input() trata os dados lidos sempre como String')
idade = int(input("Quantos anos você tem? "))
if idade < 18:
print("Você é menor de idade")
else:
print("Você é maior de idade")
# ----------------------- fim do código ------------------
Qual é o problema com este código?
Basicamente dois com a entrada dos dados pelo usuário:
01 - Não aceita caractere02 - Não aceita ponto flutuante
Se o usuário inserir um destes, ocorre um erro no processamento do algoritmo.
Qual a solução?
Depois de uma busca pela internet, muitas das soluções era a de capturar o erro da entrada com a função def e então tratar do problema. Este não é o método mais elegante.
Eis o método mais elegante, mesmo não sendo tão óbvio para muitos programados mais experientes.
# ----------------------- início do código ------------------
print('\n')
print('#Input() trata os dados lidos sempre como String')
idade = input("Quantos anos você tem? ")
if idade.isdigit():
if int(idade) < 18:
print("Você é menor de idade")
else:
print("Você é maior de idade")
else:
print("entrada de número não inteiro")
# ----------------------- fim do código ------------------
Parece simples, e é mesmo. Bem menos complexo que a maioria das propostas on-line.
Conclusão
Vale a pena a busca de outras soluções, pois sempre existe um forma mais elegante de resolver o mesmo problema.
Nenhum comentário:
Postar um comentário