noguche Posted February 18, 2016 at 04:13 PM Report Share #593653 Posted February 18, 2016 at 04:13 PM (edited) 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 February 19, 2016 at 05:49 PM by pwseo syntax highlight + split code. Link to comment Share on other sites More sharing options...
Solution pwseo Posted February 19, 2016 at 05:53 PM Solution Report Share #593703 Posted February 19, 2016 at 05:53 PM 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 More sharing options...
noguche Posted February 24, 2016 at 05:42 PM Author Report Share #593820 Posted February 24, 2016 at 05:42 PM 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 More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now