Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] resposta com tratamento a erros

import sys

atividade_a = input('Informe os dias para a atividade A: ')
atividade_b = input('Informe os dias para a atividade B: ')
atividade_c = input('Informe os dias para a atividade C: ')

try:
    atividade_a = int(atividade_a)
    atividade_b = int(atividade_b)
    atividade_c = int(atividade_c)
except Exception as e:
    print('Ocorreu um erro:', e)
    sys.exit(1)

lista_atividades = [atividade_a, atividade_b, atividade_c]

if any(valor < 0 for valor in lista_atividades):
    print('Erro: os dias não podem ser negativos.')
    sys.exit(1)
else:
    print(f'Tempo total do projeto: {sum(lista_atividades)}')
2 respostas
solução!

Oi, Gabriel! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

Eu gostei bastante da forma como você aplicou try e except junto com sys.exit(1) pra tratar entradas inválidas. O uso de any() com compreensão de lista para validar valores negativos também foi uma solução bem organizada e eficiente. Isso mostra cuidado com validação de dados e estruturação do código.

Se você quiser testar no futuro o método all() pra validar se todos os valores atendem a uma condição específica.


valores = [atividade_a, atividade_b, atividade_c]

if all(valor >= 0 for valor in valores):
    total = sum(valores)
    print("Tempo total:", total)
else:
    print("Existem valores negativos")

Nesse código, all() verifica se todos os números são maiores ou iguais a zero antes de calcular o total.

Conteúdos relacionados
Alura

Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!

Oi, Lorena! Vou bem e você?

Obrigado por mostrar a solução utilizando o all, eu não conhecia esse conceito e com certeza ele será útil nas próximas atividades!