Módulo 11 - Tuplas, dicionários e conjuntos
Prática: a ficha de aluno completa
11 min de leitura · por Cesar Gargiulo, revisado pela equipe ValorFinal e GuardiaSec · Atualizado em 01/07/2026
O que você vai aprender
- Modelar o cadastro do aluno num dicionário com notas incluídas.
- Calcular a média das provas lendo valores do dicionário.
- Decidir a situação com if, elif e else sobre a média calculada.
- Imprimir uma ficha formatada e legível com f-strings.
Ouvir o resumo desta aula
Um recap de cerca de 2 minutos na voz do Valim, para ouvir no trânsito ou na academia.
Ler a transcrição do resumo
Resumo da aula: Prática: a ficha de aluno completa.
Os objetivos desta aula. Modelar o cadastro do aluno num dicionário com notas incluídas. Calcular a média das provas lendo valores do dicionário. Decidir a situação com if, elif e else sobre a média calculada. Imprimir uma ficha formatada e legível com f-strings.
Veja o essencial, parte por parte.
O desafio e o mapa das estruturas. O desafio: cadastrar um aluno com nome, idade, curso e duas notas num dicionário.
Construindo passo a passo. Esquecer os parênteses na soma: aluno["nota1"] + aluno["nota2"] / 2 divide só a nota2, e a média sai errada em silêncio.
O código completo e os desafios extras. Peça as duas notas com input e float, como no módulo 5, em vez de deixá-las fixas no código.
Esse foi o resumo do essencial. Para se aprofundar, leia a aula completa e responda os exercícios.
O desafio e o mapa das estruturas
Todo módulo termina com as mãos no código, e este junta um time e tanto: o dicionário guarda a ficha, a aritmética do módulo 6 calcula a média, o if, elif e else do módulo 7 decide a situação e as f-strings imprimem tudo com capricho. Antes de começar, uma consulta rápida à caixa de ferramentas completa, agora que você conhece as quatro coleções do Python.
| Estrutura | Símbolo | Especialidade | Exemplo |
|---|---|---|---|
| Lista | [ ] | Sequência que muda: itens entram, saem e trocam | compras = ["pão", "leite"] |
| Tupla | ( ) | Registro fixo que não deve mudar | ponto = (3, 5) |
| Dicionário | {chave: valor} | Valores com nome, buscados pela chave | aluno = {"nome": "Ana"} |
| Conjunto | { } com itens soltos | Itens únicos, sem ordem e sem repetição | turma = {"Ana", "Bruno"} |
A caixa completa de coleções. Para a ficha de hoje, a especialista é o dicionário.
Por que o dicionário vence aqui? Faça o teste da pergunta natural: você quer a NOTA do aluno, a IDADE do aluno, o CURSO do aluno. Toda pergunta busca um campo pelo nome, e valores com nome são a especialidade do dicionário. Uma lista com ["Ana Souza", 21, "Python Básico", 8.5, 6.0] guardaria os mesmos dados, mas quem lê aluno[3] não faz ideia de que aquilo é a nota da primeira prova. Com aluno["nota1"], o código se explica sozinho.
- Crie o dicionário aluno com nome, idade, curso, nota1 e nota2.
- Calcule a média das duas notas numa variável própria.
- Decida a situação com if, elif e else usando a regra da escola.
- Imprima a ficha formatada, um campo por linha, com a média em uma casa decimal.
Construindo passo a passo
Passo 1, a ficha. Cinco campos, um par por linha, tipos à vontade: texto no nome e no curso, inteiro na idade, decimais nas notas. Escreva as chaves com capricho e de forma consistente, porque cada acesso futuro vai repetir esses nomes letra por letra, e nota1 com N maiúsculo em um lugar e minúsculo em outro termina em KeyError.
aluno = {
"nome": "Ana Souza",
"idade": 21,
"curso": "Python Básico",
"nota1": 8.5,
"nota2": 6.0,
}Passo 1: a ficha com as duas notas dentro. Um par por linha, vírgula no fim de cada um.
Passo 2, a média. Some as duas notas e divida por 2, guardando o resultado numa variável. Os parênteses em volta da soma são obrigatórios: sem eles, a ordem das operações do módulo 6 faria o Python dividir só a nota2 por 2 antes de somar, e a média sairia errada sem nenhum erro na tela. Passo 3, a situação: a regra da escola diz que média 7 ou mais aprova, de 5 a 6,9 vai para recuperação e abaixo de 5 reprova. É um if, elif e else clássico, testando do maior corte para o menor.
media = (aluno["nota1"] + aluno["nota2"]) / 2
if media >= 7:
situacao = "Aprovado"
elif media >= 5:
situacao = "Recuperação"
else:
situacao = "Reprovado"
print(media, situacao)
# Saída:
# 7.25 AprovadoPassos 2 e 3: média com parênteses na soma e a regra da escola traduzida em if, elif e else.
Repare na ordem dos testes: primeiro o corte mais alto. Como o elif só roda se o if falhou, quem chega no media >= 5 já reprovou no teste do 7, então a faixa de 5 a 6,9 fica coberta sem precisar escrever as duas pontas. Inverter a ordem, testando o 5 primeiro, aprovaria em recuperação um aluno com média 9, porque 9 também é maior que 5. Se essa lógica ficou nebulosa, vale revisitar a aula de elif do módulo 7 antes de seguir.
O código completo e os desafios extras
Passo 4, a ficha impressa. A saída de um programa é a parte que o usuário vê, então ela merece o mesmo capricho da lógica. As f-strings do módulo anterior alinham os campos, e o {media:.1f} garante a média com uma casa decimal, em vez de um 7.25 solto. Junte tudo e o programa completo fica assim.
aluno = {
"nome": "Ana Souza",
"idade": 21,
"curso": "Python Básico",
"nota1": 8.5,
"nota2": 6.0,
}
media = (aluno["nota1"] + aluno["nota2"]) / 2
if media >= 7:
situacao = "Aprovado"
elif media >= 5:
situacao = "Recuperação"
else:
situacao = "Reprovado"
print("===== FICHA DO ALUNO =====")
print(f"Nome....: {aluno['nome']}")
print(f"Idade...: {aluno['idade']} anos")
print(f"Curso...: {aluno['curso']}")
print(f"Notas...: {aluno['nota1']} e {aluno['nota2']}")
print(f"Média...: {media:.1f}")
print(f"Situação: {situacao}")
# Saída:
# ===== FICHA DO ALUNO =====
# Nome....: Ana Souza
# Idade...: 21 anos
# Curso...: Python Básico
# Notas...: 8.5 e 6.0
# Média...: 7.2
# Situação: AprovadoO programa completo: ficha, média, situação e a impressão formatada campo a campo.
Digite o programa no Playground, rode e confira a saída. Depois, o teste que separa quem digitou de quem entendeu: troque as notas e preveja a situação ANTES de rodar. Com 6.0 e 5.5 a média dá 5.75, recuperação. Com 4.0 e 5.0, dá 4.5, reprovado. Se as suas previsões baterem com a tela, o if, elif e else é seu de verdade.
O terceiro desafio merece atenção especial: uma lista de fichas com cálculo por aluno é, em miniatura, o desenho do gerenciador de tarefas do módulo 16. Feche este módulo com a mini-prova para garantir a medalha e siga para o 12, onde os textos ganham superpoderes: maiúsculas, buscas, substituições e as f-strings a fundo.
Teste rápido
Um aluno tirou 6.0 e 5.0. Pelo programa da prática, qual situação a ficha mostra?
Perguntas frequentes
- Por que guardar as notas dentro do dicionário em vez de variáveis soltas?
- Porque as notas descrevem o aluno, e a ficha é o lugar de tudo que descreve o aluno. Com nota1 e nota2 dentro do dicionário, copiar a ficha, imprimir com for e items ou guardar vários alunos numa lista funciona sem carregar variáveis soltas junto. Coesão: o que anda junto, mora junto.
- O que significa o :.1f na f-string da média?
- É uma instrução de formatação: exiba este número como decimal com 1 casa depois da vírgula. A média 7.25 aparece como 7.2 na ficha, sem alterar o valor guardado na variável, que continua 7.25 para qualquer cálculo. Quer duas casas? Troque por :.2f.
- Por que 7.25 vira 7.2 e não 7.3?
- A formatação arredonda pelo padrão do Python, que nesse caso encurta para 7.2. Para o programa da prática isso não muda nada, porque a situação é decidida com o valor cheio da variável media, antes de qualquer formatação. A exibição é maquiagem; a decisão usa o número real.
- E se a escola tivesse pesos diferentes para as provas?
- Só a linha da média muda. Prova 2 valendo o dobro? media = (aluno["nota1"] + aluno["nota2"] * 2) / 3. A estrutura do programa continua idêntica, e é essa a graça de separar o cálculo da decisão e da impressão: cada regra nova mexe num ponto só.
- Como faço a ficha para vários alunos sem repetir o código?
- Com o desenho da aula 4: uma lista de dicionários e um for por fora. A cada volta, o laço pega uma ficha, calcula a média dela e imprime. É exatamente o terceiro desafio extra, e vale a pena fazê-lo: esse padrão de repetir uma lógica para cada registro aparece em quase todo programa real.
- Posso guardar a situação calculada dentro do dicionário?
- Pode e é boa prática quando a ficha vai ser usada depois: aluno["situacao"] = situacao acrescenta o campo na hora, como você viu na aula 3. É o segundo desafio extra aplicado. Só lembre de calcular antes de imprimir, para a ficha sair completa.
Fontes
Seu progresso fica salvo neste aparelho. Assinantes sincronizam entre os aparelhos.