39 € por curso49,90 €/mês por todos os 3.000 cursos
Tudo.guru
Voltar ao caminho

Aula de prévia

Representar atividades como registos

20 minutos · Python básico para o dia a dia

No fim desta aula consegues representar uma atividade com nome, categoria e duração, percorrer vários registos e obter um total verificável. É uma aplicação dos fundamentos de Python; deves já reconhecer variáveis, listas, dicionários e um ciclo for.

Uma lista de números serve para somar minutos, mas perde o significado de cada valor. Um dicionário conserva essa associação: atividade identifica o trabalho, categoria permite agrupá-lo e minutos guarda um inteiro. A lista exterior mantém vários registos na ordem em que foram recolhidos. Usamos dados inventados; o programa não acede a calendários nem a contas externas.

python

registos = [
    {"atividade": "Ler", "categoria": "estudo", "minutos": 25},
    {"atividade": "Responder", "categoria": "trabalho", "minutos": 40},
    {"atividade": "Caminhar", "categoria": "pausa", "minutos": 10},
]
total = 0
for registo in registos:
    total += registo["minutos"]
print(f"{len(registos)} atividades; {total} minutos")

O resultado é 3 atividades; 75 minutos. registo["minutos"] procura a chave, não a posição do valor dentro do dicionário. Uma chave mal escrita provoca KeyError; um número guardado como texto exige conversão antes da soma. Não vamos ignorar esses casos: nas próximas aulas, a importação terá uma validação explícita.

Prevê agora o total sem executar: ao acrescentar uma atividade de 15 minutos, são quatro atividades e 90 minutos. Confirma depois na máquina. Essa pequena comparação entre previsão e saída evita aceitar um resultado só porque o programa terminou sem erro.

Exercício: com os dois registos abaixo, calcula apenas os minutos de estudo. Mantém os registos originais intactos.

python

registos = [
    {"atividade": "Exercícios", "categoria": "estudo", "minutos": 35},
    {"atividade": "Mensagem", "categoria": "trabalho", "minutos": 12},
]
estudo = 0
for registo in registos:
    if registo["categoria"] == "estudo":
        estudo += registo["minutos"]
print(estudo)
assert estudo == 35
assert len(registos) == 2

A solução filtra pela categoria e produz 35. Não remove elementos da lista. Para concluir, explica por que somar todas as durações daria 47 e por que isso não responderia ao pedido de filtrar estudo.

Referência técnica: estruturas de dados do Python. Texto e exemplos originais Tudo.guru.

O restante fica na tua biblioteca.

Cria a conta, confirma o email e escolhe entre comprar este caminho ou aderir ao Passe Total.