3
I’m making a queue code from a bank where you need to type the name, age, weight and gender class Person and class Queue and this code has some options that must be entered according to the user’s will. (Apparently the code works)
I wanted to know how to get this code in line allows for a check if a specific name of the element is in the queue and displays the index of where the name is?
the code line is in elif opcao == 6:
# 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):
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):
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
fila_encadeada = Fila()
opcao = 1
while opcao != 6:
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 - 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:
print("Saindo...\n")
else:
print("Opção inválida, digite uma opção válida no menu\n")
By the convention on the name of
Fila
andPessoas
, They are classes. And by mistake you didn’t define them. Are you sure you’re not skipping steps to learn Python? If you want to learn step by step, calmly, recommend the videos from Gustavo Guanabara, from the Video Course.– Breno
It seems to me that you are learning very randomly and are missing some interesting concepts. As for example, how to identify error messages. Or in Portuguese at Wiki (section 8.3)
– Breno
Where are the files containing the Queue() and People code() ?
– Edward Ramos
I don’t know what you’re talking about
– user141036
python does not come with any class or function called
Fila()
orPessoas()
, so an error is thrown, because python cannot identify what these classes are. If you created these classes you need to import them into your code so you can use them. Search aboutimport
and after you understand, add the Imports to your code. It would look something likefrom meu_modulo import Fila, Pessoas
– fernandosavio