Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Introdução à Informática: Dicionários em Python, Exercícios de Engenharia Naval

Este documento, apresentado pelo professor tatiana renata garcia, introduz o conceito de dicionários em python, suas características, criação e métodos para manipulação. Além disso, é fornecido um exemplo de cadastro de clientes e uma solução para o gerenciamento de um estoque de vinhos utilizando dicionários.

Tipologia: Exercícios

2012

Compartilhado em 12/11/2012

evandro-machado-3
evandro-machado-3 🇧🇷

4.5

(15)

44 documentos

1 / 20

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Professora: Tatiana Renata Garcia
Introdução à Informática
Estruturas de Dados
Dicionários
Referência: LUTZ, M.; ASCHER, D. Learning Python
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14

Pré-visualização parcial do texto

Baixe Introdução à Informática: Dicionários em Python e outras Exercícios em PDF para Engenharia Naval, somente na Docsity!

Introdução à Informática Estruturas de DadosDicionários

Referência: LUTZ, M.; ASCHER, D.

Learning Python

Introdução à Informática

Dicionários

^ São estruturas de dados que implementam

mapeamentos

^ Um mapeamento é uma coleção de associações entrepares de valores^ 

O primeiro elemento do par é chamado de

chave

e o

outro de

conteúdo

^ De certa forma, um mapeamento é uma generalização daidéia de acessar dados por índices, exceto que nummapeamento os índices (ou chaves) podem ser dequalquer tipo

imutável

Introdução à Informática

Exemplo

>>> dic = {"joao":100,"maria":150}>>> dic["joao"] 100 >>> dic["maria"] 150 >>> dic["pedro"] = 10>>> dic{'pedro': 10, 'joao': 100, 'maria': 150}

Introdução à Informática

Dicionários não têm ordem

^ As chaves dos dicionários não são armazenadas emqualquer ordem específica^ 

Na verdade, dicionários são implementados por tabelasde espalhamento (

Hash Tables

)

^ A falta de ordem é proposital  Diferentemente de listas, atribuir a um elemento de umdicionário não requer que a posição exista previamente X = []X [10] = 5

ERRO!

.. .Y = {}Y [10] = 5

OK!

Introdução à Informática

Métodos para usar dicionários

^ copy()^ 

Retorna um outro dicionário com os mesmospares chave/conteúdo  Observe que os conteúdos não são cópias, masapenas referências para os mesmos valores

Introdução à Informática

Métodos para usar dicionários

>>> x = {"Joao":[1,2], "Maria":[3,4]}>>> y = x.copy()>>> print x{'joao': [1, 2], 'maria': [3, 4]}>>> print y {'joao': [1, 2], 'maria': [3, 4]}>>> y['pedro']=[6,7]>>> y{'pedro': [6, 7], 'joao': [1, 2], 'maria': [3, 4]}>>> x{'joao': [1, 2], 'maria': [3, 4]}

Introdução à Informática

Métodos para usar dicionários

^ has_key

( chave

)

^ dic.has_key(

chave

)^ é o mesmo que

chave

in dic

^ Devolve True quando a chave existe >>> dic = { "Joao":"a", "Maria":"b" }>>> dic.has_key("Joao")True>>> dic.has_key("Pedro")False

Introdução à Informática

Métodos para usar dicionários

^ items()

retorna uma lista com todos os pares chave/conteúdo do dicionário  keys()

retorna uma lista com todas as chaves do dicionário  values()

retorna uma lista com todos os valores do dicionário

Introdução à Informática

Métodos para usar dicionários

^ pop

(chave)  Obtém o valor correspondente a chave e

remove o par

chave/valor do dicionário  Ex.: >>> d = {'x': 1, 'y': 2}>>> d.pop('x') 1 >>> d{'y': 2}

Introdução à Informática

Exemplo

print 'Cadastro de clientes'dic = {}n = input('Digite o numero de clientes')for i in range(n):

nome= raw_input('Digite nome')cpf = input('Digite CPF')fone = input('Digite telefone')dic[cpf] = [nome, fone]

print dic

Introdução à Informática

Solução

^ É preciso decidir que estrutura de dados vai armazenar ocadastro dos vinhos:

-^

Dicionário com código sequencial

-^

Os dados de cada vinho são armazenados em listas

^ Depois de criar o cadastro é preciso desenvolver a lógica parao usuário pesquisar os dados no dicionário e buscar asinformações desejadas

-^

É preciso definir códigos para as opções paraimplementar o laço de repetição

-^

As operações são permitidas após criar o cadastro

Introdução à Informática

####^

Sistema

de^

gerenciamento

de^ vinhos

dic^ =

{}^

#dicionario

vazio

cod^ =

0 #o

codigo

do^

produto

e^ um

numero

sequencial

continuar

=^1

while

continuar

!=^

lista

=^ []

cod^

=^ cod+ print

"Insira

informacoes

sobre

o^ produto"

nome

=^ raw_input("Nome

do^ vinho:

lista.append(nome)tipo

=^ raw_input("Tipo

do^ vinho

-^ tinto,

branco

ou^

rose:

lista.append(tipo)pais

=^ raw_input("Pais

de^ origem

-^ F(Franca),

C(Chile),

B(Brasil)

ou^ O^

(outro):

"^ )

lista.append(pais)

Introdução à Informática

#^ opcoes

de^ operacoes

para

o^ usuario

print

'T^ -

ver

as^ quantidades,

B^ -

buscar

nome

do^

vinho

pelo

codigo,

D

-^ dar

baixa

no^ estoque,

F^ -

sair'

opcao

=^ raw_input() while

opcao

!=^ 'F':

if^ opcao

==^

'T':

total_tinto

=^0

total_branco

=^0

total_rose

=^0

for^ i

in^ range(1,cod+1):if^ "tinto"

in^

dic[i]: total_tinto

=^ total_tinto

+^ dic[i][4]

elif

"branco"

in^

dic[i]:

total_branco

=^ total_branco+dic[i][4]

elif

"rose"

in^

dic[i]: total_rose

=^ total_rose

+^ dic[i][4]

print

total_tinto,

total_branco,

total_rose

Introdução à Informática

elif

opcao

==^ 'B':

x^ =^ input('Digite

codigo

do^ vinho:

print

"Nome

do^ vinho:

",^ dic[x][0]

elif

opcao

==^ 'D':

y^ =^ input('Digite

código

do^ vinho

que

foi^

comprado:

z^ =^ input('Digite

quantidade

vendida')

if^ z^

<=^ dic[y][4]:dic[y][4]=

dic[y][4]

-^ z

print

"Quantidade

atual:

",^

dic[y][4]

else:print

'Nao

existe

a^ quantidade

desejada

em^

estoque'

print

'T^

-^ ver

as^

quantidades,

B^ -^

buscar

nome

do^ vinho

pelo

codigo,

D^ -

dar^

baixa

no^ estoque,

F^ -

sair'

opcao

=^ raw_input() #############

Fim^

do^ programa