OpenCyber Academy
Tecnólogo · Capítulo 3 · Português
Código do curso: OCA-075Capítulo 03: OCA-075-C003

Capítulo 3 — Fundamentos de programação

Ensino gratuito e aberto para quem deseja proteger pessoas e tecnologias. Não é preciso criar uma conta para estudar ou consultar as respostas.

Mapa da aula

Aula 03 publicada. Mapa, exemplo, EX007.

flowchart TD
  N0["3.1 Um resumo dos reportes"]
  N1["Laboratório — Reportes semanais por clínica e catego"]
  N2["3.2 Funções e laços"]
  N3["3.3 Tratamento seguro dos dados"]
  N4["Síntese"]
  N0 --> N1 --> N2 --> N3 --> N4
  N4 --> EX["Exemplo resolvido"]
  EX --> Q["Exercício EX007"]

Desenho lógico

flowchart LR
  N0["3.1 Um resumo dos reportes"]
  N1["Laboratório — Reportes semanais por clínica e catego"]
  N2["3.2 Funções e laços"]
  N3["3.3 Tratamento seguro dos dados"]
  N4["Síntese"]
  N0 --> N1 --> N2 --> N3 --> N4 --> Q["EX007"]
[3.1 Um resumo dos reportes]
    |
    v
[Laboratório — Reportes semanais por clínica e catego]
    |
    v
[3.2 Funções e laços]
    |
    v
[3.3 Tratamento seguro dos dados]
    |
    v
[Síntese]
    |
    v
[Exemplo resolvido] --> [Exercício EX007]

Objetivos de aprendizagem

Você vai (1) escrever um script em Python para resumir e-mails reportados; (2) usar funções e laços; (3) tratar os dados com segurança.

3.1 Um resumo dos reportes

O prestador de TI da Brightwell encaminha os e-mails reportados para uma caixa postal compartilhada e exporta uma lista semanal com data, clínica e categoria do assunto. Lucas escreve um script em Python que lê a lista e conta os reportes por clínica e por categoria. Ele usa um laço para percorrer cada linha e um dicionário para guardar as contagens. O script imprime um resumo curto para a reunião semanal de TI, substituindo uma contagem manual que levava meia hora e muitas vezes tinha erros. O prestador o lê toda segunda-feira.

Laboratório — Reportes semanais por clínica e categoria

# Weekly reports by clinic and category (synthetic export).
rows = [("Harbour", "fake invoice")] * 4 + [("Harbour", "fake login")] * 2 + [("Elm Road", "fake invoice")] * 3 + \
       [("Elm Road", "other")] * 2 + [("Station", "fake login")] * 3 + [("Station", "fake invoice")] * 2 + [("Mill", "other")] * 1
def count(rows, i):
    c = {}
    for r in rows: c[r[i]] = c.get(r[i], 0) + 1
    return dict(sorted(c.items(), key=lambda x: -x[1]))
print("by clinic:", count(rows, 0)); print("by category:", count(rows, 1))

Execute com python3 lab_tally.py. Saída verificada:

by clinic: {'Harbour': 6, 'Elm Road': 5, 'Station': 5, 'Mill': 1}
by category: {'fake invoice': 9, 'fake login': 5, 'other': 3}

3.2 Funções e laços

Lucas organiza o script em funções: uma lê os dados, uma conta por um campo escolhido e uma imprime uma tabela. Usar uma única função de contagem para clínicas e categorias evita repetir código. Ele testa cada função numa pequena amostra que consegue conferir à mão. Aprende que nomes de função claros ajudam os outros a entender seu código, o que importa porque o prestador de TI vai executá-lo quando Lucas não estiver lá. Ele também acrescenta comentários curtos no início de cada função, descrevendo a entrada, a saída e as premissas que ela faz sobre os dados.

3.3 Tratamento seguro dos dados

A exportação contém os assuntos dos e-mails, que às vezes incluem nomes de pacientes. Lucas muda a exportação para incluir apenas uma categoria escolhida por quem revisa, e não o assunto completo, de modo que o script nunca lida com informações de pacientes. Ele guarda o arquivo numa pasta restrita e apaga as exportações antigas depois que o resumo é feito. Tratar os dados com segurança faz parte de programar com responsabilidade, sobretudo na saúde, onde a confidencialidade dos pacientes é um dever legal e ético. A gerente do consultório confirma a mudança com o encarregado de proteção de dados antes da próxima exportação.

Exemplo resolvido

Lucas escreve uma contagem testada em Python com funções, remove os nomes de pacientes da exportação e restringe o armazenamento.

Caso sintético. Os dados são sintéticos.

Erros e limites

As categorias dependem de quem revisa. Scripts precisam de manutenção.

Exercícios

Síntese

Scripts simples e testados economizam tempo quando são construídos para tratar os dados com segurança.

Respostas comentadas

EX007. Uma contagem manual de meia hora que muitas vezes tinha erros.

EX008. Faturas falsas, com 9 reportes.

EX009. Porque os assuntos às vezes contêm nomes de pacientes.