0
My code is in trouble verify the existence of the name of a person already on the list, when I enter the person on the list works perfectly, when I search by name when the list is empty works perfectly, but when I check to see if the name is there gives the following error:
ERROR:
elif pesquisar_pessoa.nome == "":
AttributeError: 'Pessoa' object has no attribute 'nome'
My code is here (I marked the specific lines of the code)
# Código de fila
class Fila:
inicio = None
fim = None
class Pessoa:
nome: str
idade: int
peso: float
genero: str
proximo = None
def inserir_elemento(fila, pessoa):
if fila_vazia(fila) == True:
fila.inicio = pessoa
fila.fim = pessoa
else:
fila.fim.proximo = pessoa
fila.fim = pessoa
print(f"Elemento {pessoa.nome} foi inserido\n")
def excluir_elemento(fila):
if fila_vazia(fila) == True:
print("A fila está vazia")
else:
elemento_excluido = fila.inicio
proximo_fila = fila.inicio.proximo
del fila.inicio
fila.inicio = proximo_fila
if fila.inicio == None:
fila.fim = None
print(f"O elemento {elemento_excluido.nome} foi excluído\n")
def fila_vazia(fila):
verificar_fila = (fila.inicio == None and fila.fim == None)
return verificar_fila
def tamanho_fila(fila):
if fila_vazia(fila) == True:
return 0
else:
contador_fila = 0
ver_pessoa = fila.inicio
while ver_pessoa != None:
contador_fila += 1
ver_pessoa = ver_pessoa.proximo
return contador_fila
def imprimir_elemento(fila):
if fila_vazia(fila) == True:
print("A fila está vazia\n")
else:
ver_pessoa = fila.inicio
while ver_pessoa != None:
print(ver_pessoa.nome, ver_pessoa.idade, ver_pessoa.peso,
ver_pessoa.genero, end=" " if ver_pessoa.proximo != None else print())
ver_pessoa = ver_pessoa.proximo
___________________________________________________________________
| def procurar_pessoa(fila, pesquisar_pessoa): |
| if fila_vazia(fila) == True: |
| print("A fila está vazia para procurar alguém\n") |
| elif pesquisar_pessoa.nome == "": |
| print ("Digite o nome da pessoa que deseja encontrar: ") |
| else: |
| ver_pessoa = fila.inicio |
| busca = "" |
| pessoa_encontrada = False |
| while ver_pessoa != None: |
| if ver_pessoa.nome == pesquisar_pessoa.nome: |
| busca += ver_pessoa.nome + "Pessoa encontrada\n" |
| pessoa_encontrada = True |
| else: |
| busca += pesquisar_pessoa.nome + "\n" |
| if ver_pessoa.proximo != None: |
| busca += ("\n") |
| ver_pessoa = ver_pessoa.proximo |
| |
| if pessoa_encontrada: |
| print(busca) |
| else: |
| print("Pessoa não encontrada") |
___________________________________________________________________
fila_encadeada = Fila()
opcao = 1
while opcao != 7:
print ("1 - Inserir")
print ("2 - Excluir")
print ("3 - Imprimir")
print ("4 - Informar tamanho da fila")
print ("5 - Informar se a fila está vazia")
print ("6 - Procurar nome da pessoa")
print ("7 - Sair")
opcao = int(input("Informe a opção: "))
if opcao == 1:
nome_informado = str(input("Informe o nome da pessoa: "))
idade_informada = int(input("Informe a idade de {}: ".format(nome_informado)))
peso_informado = float(input("Informe o peso de {}: ".format(nome_informado)))
genero_informado = str(input("Informe o gênero de {}: ".format(nome_informado)))
novo_elemento = Pessoa()
novo_elemento.nome = nome_informado
novo_elemento.idade = idade_informada
novo_elemento.peso = peso_informado
novo_elemento.genero = genero_informado
inserir_elemento(fila_encadeada, novo_elemento)
elif opcao == 2:
excluir_elemento(fila_encadeada)
elif opcao == 3:
imprimir_elemento(fila_encadeada)
elif opcao == 4:
print(f"Tamanho da Fila: {tamanho_fila(fila_encadeada)}\n")
elif opcao == 5:
if(fila_vazia(fila_encadeada) == True):
print(f"A fila está vazia\n")
else:
print(f"A fila não está vazia e possui {tamanho_fila(fila_encadeada)} elemento(s)\n")
_________________________________________________________________________
| elif opcao == 6: |
| pesquisar_pessoa = Pessoa() |
| pesquisar_pessoa.proximo = input("Digite o nome da pessoa: ") |
| procurar_pessoa(fila_encadeada, pesquisar_pessoa) |
__________________________________________________________________________
elif opcao == 7:
print("Saindo...\n")
else:
print("Opção inválida, digite uma opção válida no menu\n")
In case you had to withdraw
elif pesquisar_pessoa.nome == "": 
 print ("Digite o nome da pessoa que deseja encontrar: ")
to put this piece of code?– user141036
you pose to put it chained before the
elif pesquisar_pessoa.nome == "": print ("Digite o nome da pessoa que deseja encontrar: ")
I edited the answer to show how you can enter your code– Killdary Aguiar de Santana
Invalid Syntax : elif pesquisar_pessoa not is Pessoa:
– user141036
@Alexf. I analyzed your code further, the property
nome
is not completed inpesquisar_pessoa
so it does not yet exist in the object, your program will work when you changepesquisar_pessoa.proximo
forpesquisar_pessoa.nome = input('...
. You can remove the If I proposed earlier– Killdary Aguiar de Santana
gave a Crtl+F and
ver_pessoa.proximo
there are 5 of them in the code, specify better where I should change.– user141036
@Alexf. check the answer above, I marked which line you should change
– Killdary Aguiar de Santana
The mistake is still in the
elif pesquisar_pessoa not is Pessoa:
 
SyntaxError: invalid syntax
– user141036
@Alexf. can remove that if I have indicated, and your code should work now
– Killdary Aguiar de Santana
It worked, thanks @Killdaryaguiardesantana.
– user141036
@Alexf. We’re here to help, mark the answer as right
– Killdary Aguiar de Santana