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

Resolução: Calculando o tempo total de projeto

atividades = [{'atividade':'A', 'tempo':5},
              {'atividade':'B', 'tempo':10},
              {'atividade':'C', 'tempo':15}
]

def informar_tempo_atividade():
    try:
        tempototal = 0
        for atividade in atividades:
            tempo = int(input(f'informe os dias para atividade {atividade['atividade']}: '))
            if tempo >= 0:
                atividade['tempo'] = tempo
                tempototal = tempototal+tempo
            elif tempo < 0:
                print(f'O valor {tempo} é negativo, digite um valor positivo.')
                return informar_tempo_atividade()

    except ValueError:
        print(f'o valor é invalido, digite um número inteiro')
        return informar_tempo_atividade()

    print(f'O tempo total dos projetos A, B e C é de {tempototal}')


def main():
    informar_tempo_atividade()


if __name__ == '__main__':
    main()
2 respostas
solução!

Oi, William! Como vai?

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

Muito bom o uso que você fez do try e except para tratar entradas inválidas e a forma como você percorre a lista de atividades somando o tempo total, o que mostra uma boa organização da lógica.

Uma dica interessante para o futuro é usar a função sum() junto com uma compreensão de listas para calcular totais de forma mais simples.


atividades = [
    {'atividade': 'A', 'tempo': 5},
    {'atividade': 'B', 'tempo': 10},
    {'atividade': 'C', 'tempo': 15}
]

tempo_total = sum(item['tempo'] for item in atividades)
print(tempo_total)

Nesse código, sum() soma os valores da chave tempo de cada dicionário, deixando o cálculo mais direto e fácil de ler.

Conteúdos relacionados
Alura Conte com o apoio da comunidade Alura na sua jornada. Abracos e bons estudos!

O python realmente muda as estruturas kkkk. Assim ficou bem mais simples e legivel, obrigado!