Baixe o app para aproveitar ainda mais
Prévia do material em texto
FUNDAMENTOS DE PROGRAMAÇÃO I AULA 24: TEÓRICA Vetores Associativos Dicionários Prof. Janderson Universidade Federal de Lavras Departamento de Ciência da Computação Definição • Vetores Associativos ou Dicionários. – Estrutura de dados similar às listas. – Propriedade de acesso diferente. – Conjunto de chaves e valores. – Consiste em relacionar uma chave a um valor específico. Inicialização • Em Python, um dicionário é criado utilizando-se chaves ({}). • Cada elemento do dicionário é uma combinação de chave e valor. Cada par deve ser separado por vírgula. • Para definição do par chave/valor deve-se seguir a sintaxe: “nome_chave”: valor_correspondente Inicialização • Em Python, um dicionário é criado utilizando-se chaves ({}). • Cada elemento do dicionário é uma combinação de chave e valor. Cada par deve ser separado por vírgula. • Para definição do par chave/valor deve-se seguir a sintaxe: “nome_chave”: valor_correspondente Atenção: - nome_chave deve vir entre aspas duplas; - Após a definição da chave deve-se colocar o operador dois-pontos (:) Inicialização • Exemplo: vamos construir um dicionário para armazenar as informações de um aluno matriculado em Fundamentos de Programação I. – Que informações poderiam ser relevantes? Inicialização • Exemplo: vamos construir um dicionário para armazenar as informações de um aluno matriculado em Fundamentos de Programação I. – A título de exemplo, vamos considerar: ● Nome; ● Número de matrícula; ● Média final. Inicialização • Vamos construir um dicionário para o seguinte aluno: Chave Valor Nome do aluno: João das Neves Número de Matrícula: 88888888 Média: 30.5 Inicialização • Vamos construir um dicionário para o seguinte aluno: aluno = {"Nome": "Joao das Neves", "Matricula": 88888888, "Media": 30.5} Inicialização • Vamos construir um dicionário para o seguinte aluno: aluno = {"Nome": "Joao das Neves", "Matricula": 88888888, "Media": 30.5} Nome da variável do tipo dicionário Inicialização • Vamos construir um dicionário para o seguinte aluno: aluno = {"Nome": "Joao das Neves", "Matricula": 88888888, "Media": 30.5} Nome da variável do tipo dicionário Chaves Inicialização • Vamos construir um dicionário para o seguinte aluno: aluno = {"Nome": "Joao das Neves", "Matricula": 88888888, "Media": 30.5} Nome da variável do tipo dicionário Chaves Valores Acesso • Um dicionário é acessado por suas chaves. • Diferentemente de listas, onde o índice é um número, dicionários utilizam suas chaves como índice. • Sintaxe para acesso: nome_variavel[“nome_chave”] Acesso • Um dicionário é acessado por suas chaves. • Diferentemente de listas, onde o índice é um número, dicionários utilizam suas chaves como índice. • Sintaxe para acesso: nome_variavel[“nome_chave”] Atenção: - nome_chave deve vir entre aspas duplas; - A chave a ser acessada deve ser especificada entre colchetes após a variável do tipo dicionário. Acesso • Exemplo: construir um programa que informe se o aluno João das Neves foi aprovado ou reprovado na disciplina. aluno = {"Nome": "Joao das Neves", "Matricula": 88888888, "Media": 30.5} if aluno["Media"] >= 60.0: print("Joao das Neves foi aprovado") else: print("Joao das Neves foi reprovado") Acesso • Mais exemplos: Acesso • Mais exemplos: O que aconteceria se houvesse uma tentativa de acesso a um índice numérico ou a uma chave inexistente? Acesso • Mais exemplos: Índice numérico Chave inexistente Acesso • Outro erro comum: Duas chaves iguais ATENÇÃO: Um dicionário NÃO deve possuir chaves iguais. Alteração • Para se alterar um valor armazenado em um dicionário, basta realizar a alteração do valor por meio do acesso de sua chave correspondente. • Exemplo: após a Avaliação de Recuperação, João das Neves obteve uma nova média geral na disciplina (informada pelo dispositivo de entrada padrão), faça um programa que leia a nova média e informe se o aluno em questão foi aprovado ou reprovado na disciplina. Alteração • Exemplo: aluno = {"Nome": "Joao das Neves", "Matricula": 88888888, "Media": 30.5} aluno["Media"] = float(input()) if aluno["Media"] >= 60.0: print("Joao das Neves foi aprovado") else: print("Joao das Neves foi reprovado") Alteração do valor armazenado Criação de Nova Chave • Em Python, é permitido a criação de uma nova chave para um dicionário, após a declaração do mesmo. • Mecanismo: atribuição ou leitura de dados por meio de uma chave inexistente. • Exemplo: considerando o dicionário utilizado nos exemplos anteriores, vamos criar a chave adicional Idade após a declaração/definição do dicionário. Criação de Nova Chave • Exemplo: Criação de uma nova chave Exemplo Completo 1 • Elabore um programa que utilize um vetor associativo (dicionário) para armazenar as informações de um dado carro. As informações a serem armazenadas são: fabricante, modelo, ano, cor e preço. Seu programa deverá então ler a informação do ano atual e informar se o carro é novo (ano fabricação => ano atual), seminovo (ano fabricação => últimos 4 anos), ou velho (ano fabricação => mais do que 4 anos). carro = {"fabricante": "", "modelo": "", "ano": 0, "cor": "", "preco": 0} carro["fabricante"] = input("Qual o fabricante: ") carro["modelo"] = input("Qual o modelo: ") carro["ano"] = int(input("Qual o ano do carro: ")) carro["cor"] = input("Qual a cor: ") carro["preco"] = float(input("Qual o preco: ")) ano_atual = int(input("\nQual o ano atual: ")) if (carro["ano"] == ano_atual): print("NOVO") elif (carro["ano"] > (ano_atual - 4)): print("SEMINOVO") else: print("VELHO") VERSÃO 1 carro = {} carro["fabricante"] = input("Qual o fabricante: ") carro["modelo"] = input("Qual o modelo: ") carro["ano"] = int(input("Qual o ano do carro: ")) carro["cor"] = input("Qual a cor: ") carro["preco"] = float(input("Qual o preco: ")) ano_atual = int(input("\nQual o ano atual: ")) if (carro["ano"] == ano_atual): print("NOVO") elif (carro["ano"] > (ano_atual - 4)): print("SEMINOVO") else: print("VELHO") Dicionário vazio VERSÃO 2 def dic(fab, mod, ano, cor, pre): return {"fabricante": fab, "modelo": mod, "ano": ano, "cor": cor, "preco": pre} def mensagens(carro,ano_atual): if (carro["ano"] == ano_atual): print("NOVO") elif (carro["ano"] > (ano_atual - 4)): print("SEMINOVO") else: print("VELHO") def principal(): a = input("Qual o fabricante: ") b = input("Qual o modelo: ") c = int(input("Qual o ano do carro: ")) d = input("Qual a cor: ") e = float(input("Qual o preco: ")) ano_atual = int(input("\nQual o ano atual: ")) carro = dic(a,b,c,d,e) mensagens(carro,ano_atual) principal() VERSÃO 3 Exemplo Completo 2 • Escreva um programa que gere um dicionário, onde cada chave seja uma vogal, e seu valor seja o número de vezes que aquela vogal é encontrada em uma frase lida. • Exemplo: O rato → {“a”: 1, “e”:0, ”i”: 0, “o”: 2, “u”: 0} def principal(): vogais = {"a": 0, "e": 0, "i": 0, "o": 0, "u": 0} frase = input() for l in frase: if l == "a" or l == "A": vogais["a"] += 1 if l == "e" or l == "E": vogais["e"] += 1 if l == "i" or l == "I": vogais["i"] += 1 if l == "o" or l == "O": vogais["o"] += 1 if l == "u" or l == "U": vogais["u"] += 1 print(vogais) principal()Exercícios 1. Crie um dicionário e armazene nele os seus dados: nome, número de matrícula e curso. Imprima todos os dados usando o padrão chave: valor. O primeiro par a ser exibido deve ser o seu nome, o segundo deve ser o número de matrícula e o último seu curso. Exercícios 2. Crie um dicionário que armazene as seguintes informações de uma dada pessoa: nome, idade e telefone. Se a pessoa for menor de idade, seu programa deverá exibir no dispositivo de saída padrão o nome desta pessoa escrito ao contrário. Se ela for maior de idade, o programa deverá exibir o telefone escrito ao contrário. Slide 1 Slide 2 Slide 3 Slide 4 Slide 5 Slide 6 Slide 7 Slide 8 Slide 9 Slide 10 Slide 11 Slide 12 Slide 13 Slide 14 Slide 15 Slide 16 Slide 17 Slide 18 Slide 19 Slide 20 Slide 21 Slide 22 Slide 23 Slide 24 Slide 25 Slide 26 Slide 27 Slide 28 Slide 29 Slide 30
Compartilhar