1
resposta

Calculando o tempo total de projeto

Camila está organizando um projeto e precisa calcular o tempo total necessário para concluir três atividades: A, B e C. No entanto, se alguma atividade tiver um número de dias negativo, o código deve avisar que os valores inseridos são inválidos e não calcular o total.

Escreva um programa que receba o número de dias de três atividades e exiba o tempo total do projeto. Se algum valor for negativo, mostre uma mensagem informando o erro.

Saída esperada:

  • **Informe os dias para a atividade A: 5 **
  • **Informe os dias para a atividade B: - 8 **
  • **Informe os dias para a atividade C: 10 **
  • Erro: os dias não podem ser negativos.
# Solicitação dos dias de cada atividade:
atividade_A = int(input("Informe os dias para a atividade A: "))
atividade_B = int(input("Informe os dias para a atividade B: "))
atividade_C = int(input("Informe os dias para a atividade C: "))

# Cálculo do tempo total das atividades:
if (atividade_A >= 0 and atividade_B >= 0 and atividade_C >= 0):
    tempo_total = atividade_A + atividade_B + atividade_C
    print(f'O projeto levará um tempo total de {tempo_total} dias.')
else: 
    print("Erro: Os dias não podem ser negativos. Informe novamente os dados.")

Informe os dias para a atividade A: 5
Informe os dias para a atividade B: -8
Informe os dias para a atividade C: 10
Erro: Os dias não podem ser negativos. Informe novamente os dados.
1 resposta

Olá, Andressa. Como vai?

Parabéns pela resolução! Sua solução está tecnicamente perfeita e atende a todos os requisitos do desafio. Você aplicou corretamente a lógica de validação de dados, garantindo que o processamento (a soma) só aconteça se a entrada for confiável.

Gostaria de destacar alguns pontos muito positivos na sua construção:

  • **Uso do Operador Lógico and**: Essa foi a escolha ideal. Ao encadear as três condições, você garante que todas precisam ser verdadeiras para o cálculo ocorrer. Se apenas uma falhar, o programa já pula para o else.
  • Tratamento de Erros: Informar ao usuário o que houve de errado é uma prática essencial de UX (User Experience). Sem esse else, o usuário ficaria sem saber por que o cálculo não apareceu.
  • Tipagem Correta: Você utilizou int(input()), o que é apropriado para contagem de dias inteiros.

Uma curiosidade "Pythônica"

Lembra que o Python permite simplificar intervalos de comparação? Embora para valores negativos o and seja muito comum, você também poderia escrever a condição de uma forma ligeiramente diferente se quisesse verificar se todos são maiores ou iguais a zero:

# Uma forma alternativa usando a função min()
if min(atividade_A, atividade_B, atividade_C) >= 0:
    tempo_total = atividade_A + atividade_B + atividade_C
    print(f'O projeto levará um tempo total de {tempo_total} dias.')

Por que isso funciona? Se o menor valor entre os três não for negativo, automaticamente nenhum dos outros será! É uma forma elegante de reduzir a quantidade de operadores lógicos no código.

Seu raciocínio lógico está muito bem estruturado e a organização do código está fácil de ler. Continue praticando essas validações, elas são a base para sistemas robustos!

Espero que possa ter lhe ajudado!