Jump to content

Dicionário python


noguche
Go to solution Solved by pwseo,

Recommended Posts

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):

Edited by pwseo
syntax highlight + split code.
Link to comment
Share on other sites

  • Solution

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
Link to comment
Share on other sites

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'])
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.