Olá, Evandro. Como vai?
Parabéns por concluir os exercícios propostos! O uso de dicionários em Python (dict) é um dos conceitos mais fundamentais para quem quer trabalhar com manipulação de dados, APIs e desenvolvimento web. Sua postagem mostra que você compreendeu muito bem a estrutura de chave e valor.
O seu código está muito bem direcionado, mas analisando de perto a estrutura dos exercícios 2, 3 e 5, notei pequenos detalhes de sintaxe e lógica que valem a pena ajustarmos juntos para que seu programa rode de forma perfeita e limpa no terminal.
Análise e Ajustes nos Exercícios
Exercício 2: Conflito de Aspas e Chave Inexistente
No seu laço for, a linha do input acabou quebrando a sintaxe porque você utilizou aspas simples para envolver a String do f-string e também para acessar a chave pessoa['idade']. Quando o Python lê duas aspas simples seguidas, ele acha que o texto acabou ali. Para corrigir, basta usar aspas duplas por fora e simples por dentro.
Além disso, no texto do print você colocou {pessoa['idade']}, o que faria o programa exibir a idade antiga no meio da pergunta (ex: "Digite a nova idade de 27"). O ideal é exibir o nome do usuário: {pessoa['nome']}.
Exercício 3: Cálculo do Quadrado
No laço que calcula os quadrados de 1 a 5, você escreveu quadrados[i] = i * 2. Lembre-se que i * 2 calcula o dobro do número. Na matemática e no Python, para calcular o quadrado (potência de 2), utilizamos dois asteriscos: i 2.
Exercício 5: Contagem de Palavras Rápida
A sua lógica está excelente e o método .get() é perfeito para isso. Contudo, do jeito que o bloco foi escrito:
if palavra in contagem:
contagem[palavra] = contagem.get(palavra, 0) + 1
Se a palavra for nova (não estiver em contagem), o if será falso e o código não fará nada com ela. O grande segredo do .get(palavra, 0) é que ele elimina a necessidade de usar o if/else. Você pode fazer a soma diretamente para todas as palavras!
O Código Corrigido e Otimizado
Veja como estruturar o script para que ele funcione sem erros:
# --- Exercício 1: Criando o Dicionário ---
# Como é apenas uma pessoa, podemos usar um dicionário direto em vez de uma lista de dicionários, facilitando o acesso.
pessoa = {'nome': 'evandro', 'idade': 27, 'cidade': 'recife'}
# --- Exercício 2: Atualizando Dados ---
# Corrigido o conflito de aspas no f-string usando aspas duplas por fora
att_idade = int(input(f"Digite a nova idade de {pessoa['nome']}: "))
pessoa['idade'] = att_idade
# Adicionando nova chave e deletando uma existente
pessoa['profissao'] = 'dev'
del pessoa['cidade']
print("\nDicionário atualizado do Exercício 2:")
print(pessoa)
# --- Exercício 3: Dicionário de Quadrados ---
quadrados = {}
for i in range(1, 6):
quadrados[i] = i ** 2 # Usando ** para potência/quadrado
print("\nDicionário de quadrados (1 a 5):")
print(quadrados)
# --- Exercício 4: Verificando Chaves ---
if 'profissao' in pessoa:
print('\nA chave Profissão EXISTE no dicionário.')
else:
print('\nA chave Profissão NÃO existe.')
# --- Exercício 5: Contagem de Palavras ---
frase = """A verdadeira paz não é a ausência de tempestades
mas a âncora de serenidade e a certeza de que a calmaria sempre retorna à alma
permitindo-nos respirar fundo e seguir em frente com o coração leve e em total harmonia com o universo"""
contagem = {}
palavras = frase.split()
for palavra in palavras:
# O .get busca o valor atual. Se não achar, assume 0. Depois soma 1.
contagem[palavra] = contagem.get(palavra, 0) + 1
print("\nResultado da contagem de palavras:")
print(contagem)
O que mudou de mais importante?
Note que no Exercício 5, ao remover a condicional if palavra in contagem, o código ficou muito mais idiomático (o famoso estilo pythonico). O método .get() já faz todo o trabalho de verificar se a palavra existe ou se deve começar do zero de forma automática em uma única linha.
Continue com essa excelente dedicação nos treinos práticos, Evandro! Mandou super bem nos desafios.
Espero que possa ter lhe ajudado!