What has changed?
You have defined two classes in Python. These classes also have constructor methods. In the first of these constructor methods, you have defined the variable "marca" twice. I fixed a typo in the "adicionar_item" method in the second class. I fixed the if-else block structure in the "remover_item" method.
class Item:
def __init__(self, nome, quantidade, marca):
self.nome = nome
self.quantidade = quantidade
self.marca = marca
self.proximo = None
class ListaDeCompras:
def __init__(self):
self.primeiro = None
self.ultimo = None
def adicionar_item(self, nome, quantidade, marca):
novo_item = Item(nome, quantidade, marca)
if self.primeiro is None:
self.primeiro = novo_item
self.ultimo = novo_item
else:
self.ultimo.proximo = novo_item
self.ultimo = novo_item
def remover_item(self, nome):
item_atual = self.primeiro
item_anterior = None
while item_atual is not None:
if item_atual.nome == nome:
if item_anterior is not None:
item_anterior.proximo = item_atual.proximo
else:
self.primeiro = item_atual.proximo
if item_atual.proximo is None:
self.ultimo = item_anterior
return True
item_anterior = item_atual
item_atual = item_atual.proximo
return False
def imprimir_lista(self):
item_atual = self.primeiro
while item_atual is not None:
print(f"{item_atual.nome} - {item_atual.quantidade} - {item_atual.marca}")
item_atual = item_atual.proximo