The line 22 is this:
print(dados)
We will organize the code and post comments to facilitate understanding:
#Aqui é apenas um função, ela só será executada se for explicitamente chamada pelo código
def pesquisa_de_surfista(pesquisa):
dados = {}
for linha in arquivo:
(ID, nome, pais, média, prancha, idade) = linha.split(";")
dados[ID] = (nome, pais, média, prancha, idade)
print(ID)
if pesquisa == ID:
arquivo.close()
#Aqui começa efetivamente o código a ser executado, a função terminou
arquivo = open("surfing_data.csv")
id_de_verificação = int(input("Insira a ID do surfista desejado: "))
sufista = pesquisa_de_surfista(id_de_verificação)
if sufista:
print("ID: " + sufer['id'])
print("Nome: " + sufer['nome'])
print("Pais: " + sufer['pais'])
print("Média: " + sufer['média'])
print("Prancha: " + sufer['prancha'])
print("Idade: " + sufer['idade'])
print(dados)
The function pesquisa_de_surfista
is totally separate from the rest of the code. What is inside does not exist outside.
So dados
on line 22 does not exist at all. This is called scope. It exists within the function. If you want to pass the data from inside the function outwards you must return something.
Probably the solution would be:
def pesquisa_de_surfista(pesquisa):
dados = {}
for linha in arquivo:
(ID, nome, pais, média, prancha, idade) = linha.split(";")
dados[ID] = (nome, pais, média, prancha, idade)
print(ID)
if pesquisa == ID:
arquivo.close()
return dados
arquivo = open("surfing_data.csv")
id_de_verificação = int(input("Insira a ID do surfista desejado: "))
sufista = pesquisa_de_surfista(id_de_verificação)
if sufista:
print("ID: " + sufer['id'])
print("Nome: " + sufer['nome'])
print("Pais: " + sufer['pais'])
print("Média: " + sufer['média'])
print("Prancha: " + sufer['prancha'])
print("Idade: " + sufer['idade'])
print(sufista)
The code probably has other errors.
I put in the Github for future reference.
You edited the question, changed its context and just invalidated the answers that were given. Please reverse the edit open another question with the new question.
– Jéf Bueno
why this within the function, and variables within the function are not accessed outside it.
– stack.cardoso