Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Projeto] 08 Hora da prática: dicionários

# 1 - Crie um dicionário representando informações sobre uma pessoa, como nome, idade e cidade.
#2 - Utilizando o dicionário criado no item 1:
import os

cadastro_pessoas = [
    {'Nome': 'Mariana', 'Idade': '30', 'Cidade': 'São Paulo', 'Profissão': 'Analista'},
    {'Nome': 'Angela', 'Idade': '60', 'Cidade': 'Rio de Janeiro', 'Profissão': 'Vendedora'},
    {'Nome': 'Juliana', 'Idade': '41', 'Cidade': 'Curitiba', 'Profissão': 'Motorista'}
]

def limpar_tela():

    os.system('cls' if os.name == 'nt' else 'clear')

def exibir_menu():
    print('\n--- Menu de Alteração de Dados ---')
    print('1 - Alterar Nome')
    print('2 - Alterar Idade')
    print('3 - Alterar Cidade')
    print('4 - Sair')

def exibir_lista():
    print('\n--- Lista de Pessoas Cadastradas ---')
    print(f'{"Nome".ljust(20)} | {"Idade".ljust(5)} | {"Cidade".ljust(20)} | {"Profissão".ljust(20)}')
    print('-' * 75)
    for pessoa in cadastro_pessoas:
        print(f'{pessoa["Nome"].ljust(20)} | {pessoa["Idade"].ljust(5)} | {pessoa["Cidade"].ljust(20)} | {pessoa["Profissão"].ljust(20)}')
    print('-' * 75)

def buscar_pessoa_por_nome(nome_procurado):
    for pessoa in cadastro_pessoas:
        if pessoa['Nome'].lower() == nome_procurado.lower():
            return pessoa
    return None

def finalizando_app():
    limpar_tela()
    print('Programa finalizado!')

def executar_menu_alteracao():
    while True:
        exibir_menu()
        opcao_menu = input('\nEscolha uma opção: ').strip()

        if opcao_menu == '1':
            exibir_lista()
            nome_digitado = input('\nDigite o nome da pessoa que deseja alterar o NOME: ')
            pessoa = buscar_pessoa_por_nome(nome_digitado)

            if pessoa:
                novo_nome = input('Digite o novo nome: ')
                pessoa['Nome'] = novo_nome
                print('\nNome alterado com sucesso!')
            else:
                print('Pessoa não encontrada.')

            exibir_lista()

        elif opcao_menu == '2':
            exibir_lista()
            nome_digitado = input('Digite o nome da pessoa que deseja alterar a IDADE: ')
            pessoa = buscar_pessoa_por_nome(nome_digitado)

            if pessoa:
                nova_idade = int(input('Digite a nova idade: '))
                pessoa['Idade'] = nova_idade
                print('Idade alterada com sucesso!')
            else:
                print('Pessoa não encontrada.')

            exibir_lista()

        elif opcao_menu == '3':
            exibir_lista()
            nome_digitado = input('Digite o nome da pessoa que deseja alterar a CIDADE: ')
            pessoa = buscar_pessoa_por_nome(nome_digitado)

            if pessoa:
                nova_cidade = input('Digite a nova cidade: ')
                pessoa['Cidade'] = nova_cidade
                print('Cidade alterada com sucesso!')
            else:
                print('Pessoa não encontrada.')

            exibir_lista()

        elif opcao_menu == '4':
            finalizando_app()
            break

        else:
            print('Opção inválida. Tente novamente.')

if __name__ == '__main__':
    executar_menu_alteracao()

#3 - Crie um dicionário que relacione os números de 1 a 5 aos seus respectivos quadrados.
def quadrado():
    dicionario_quadrados = {numero: numero ** 2 for numero in range(1, 6)}
    print(dicionario_quadrados)

quadrado()

#4 - Crie um dicionário e verifique se uma chave específica existe dentro desse dicionário.

dicionario_pais = [{'Brasil'},{'Portugal'},{'Espanha'}]

verificar_chave = 'Italia'

if verificar_chave in dicionario_pais:
     print(f'A chave '{verificar_chave}' existe no dicionário.')
else:
    print(f'A chave '{verificar_chave}' não existe no dicionário.')



#5 - Escreva um código que conte a frequência de cada palavra em uma frase utilizando um dicionário.

palavra = input('Digite uma palavra para ser contada: ')

contando_freq = len(palavra)
print(contando_freq)
1 resposta
solução!

Olá, Karoline! Como vai?

Muito bem! Continue resolvendo os desafios e compartilhando com a comunidade Alura.

Observei que você explorou o uso de dicionários para manipular e organizar dados de forma estruturada, utilizou muito bem o laço for com condicionais para fazer buscas eficientes e ainda compreendeu a importância do menu interativo com funções separadas para organizar melhor o código e torná-lo reutilizável.

Só uma observação no Exercício 5, que na verdade, pede para contar a frequência de palavras em uma frase. Dessa maneira:

frase = "Ele viajou para o Brasil, disse que o Brasil é lindo."
contagem_palavras = {}
palavras = frase.split()
for palavra in palavras:
    contagem_palavras[palavra] = contagem_palavras.get(palavra, 0) + 1
print(contagem_palavras)

Resultado:

{'Ele': 1, 'viajou': 1, 'para': 1, 'o': 2, 'Brasil': 2, 'e': 1, 'disse': 1, 'que': 1, 'é': 1, 'lindo.': 1}

E uma dica interessante para o futuro é usar collections.Counter para contar a frequência de palavras em uma frase. Dessa forma:

from collections import Counter

frase = "Aprender Python é divertido e aprender é gratificante"
frequencia = Counter(frase.lower().split())
print(frequencia)

Resultado:

Counter({'aprender': 2, 'é': 2, 'python': 1, 'divertido': 1, 'e': 1, 'gratificante': 1})

Isso facilita a contagem sem precisar criar loops manuais ou dicionários do zero.

Ícone de sugestão Para saber mais:

Sugestão de conteúdo para você mergulhar ainda mais sobre o tema:

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

AluraConte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!