Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #59 da revista programar. Faz já o download aqui!

noguche

[Resolvido] dicionário python

Mensagens Recomendadas

noguche    0
noguche

Boa tarde a todos,

Estou a seguir o tutorial Aprenda a programar de Luciano Ramalho, porém estou a seguir as lições com a versão 3.5 do Python.

Está a ocorrer um erro ao tentar executar o código abaixo, alguém poderia me ajudar?

Obrigado

dic = {}
dic["ze"] = 300
dic["mauricio"] = 100
dic["heloisa"] = 150
dic["ze"] = 300
dic = {"mauricio": 100, "ze": 300, "heloisa": 150}
dic["ze"] = 200
dic = {"mauricio": 100, "ze": 200, "heloisa": 150}

>>> dic.keys()
["mauricio", "ze", "heloisa"]
>>> dic["paulo"]
Traceback (innermost last):
   File "", line 1, in ?
       dic["paulo"]
KeyError: paulo
>>> dic.has_key("heloisa")
True
>>> dic.has_key("paulo")
False

Obs.: O erro é : Invalid Syntax em : Traceback (innermost last):

Editado por pwseo
syntax highlight + split code.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pwseo    223
pwseo

noguche,

Tive que editar o teu post para separar um pouco o código que define dic do código que utilizas para testar o dicionário.

Alterei também o output de has_key, que é um booleano e não um número.

O erro que obténs tem o tipo KeyError porque estás a tentar aceder a uma key que não existe no dicionário. É como se fosse uma variável: não podes ver o seu valor se ela não existir:

dic = {}
dic['a'] = 42
print(dic['b'])  # KeyError: b
print(dic['a'])  # 42

Outra coisa: o método has_key deixou de existir em Python 3. Deves utilizar o operador in em seu lugar:

>>> "heloisa" in dic
True
>>> "paulo" in dic
False

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
noguche    0
noguche

Boa tarde pwseo,

Muito obrigado por sua atenção!

Ao seguir as explicações do PDF andei a fazer confusão ao escrever os códigos, para este exemplo eu estava a copiar todo o código e o erro começava por aí, graças a sua esplicação ficou tudo claro.

Obrigado!

A primeira parte do exercício proposto ficou assim:

dic = {}
dic['ze'] = 300
dic['mauricio'] = 100
dic['heloisa'] = 150
print(dic['ze'])

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.