我的任务是使用队列和一个类构建代码,在这个类中,您可以获得三个选项:
-
生成一个新号码
-
调用队列的第一个号码并将其从主队列中取出(有一个辅助队列)
-
显示已呼叫的号码
这是创建的类:
class Fila:
def __init__(self):
self._vet = []
def enqueue(self, item): # enfileirar
self._vet.append([-1])
def dequeue(self): # desenfileirar
self._vet.pop(0)
def front(self): # mostrar o 1o da fila, sem remover!
return(self._vet[1])
def is_empty(self): # retorna se a fila esta vazia
if len(self._vet) == 0:
return True
return False
def __len__(self):
return len(self._vet)
def __str__(self): # representacao da fila como string
return str(self._vet)
这是我想出的代码:
from classeFila import *
if __name__ == "__main__":
f1 = Fila()
fAux = Fila()
contador = 0
while True:
opcao = int(input("Digite 1 para obter nova senha, 2 para chamar próxima senha ou 3 para mostrar senhas chamadas."))
if opcao == 1:
contador += 1
f1.enqueue(contador)
print("Sua senha é a de número", contador)
elif opcao == 2:
print("Senha número", f1[0], "está sendo chamada." )
fAux.enqueue(f1[0])
f1.dequeue()
elif opcao == 3:
print(fAux)
else:
print("Digite um número válido.")
问题是,当我运行代码并输入选项2时,我得到了错误:
Traceback (most recent call last):
File "c:\\Users\\thoma\\Desktop\\Projetos Python\\Fahad\\Filas\\senhas.py", line 16, in \<module\>
print("Senha número", f1\[0\], "está sendo chamada." )
TypeError: 'Fila' object is not subscriptable
虽然我知道这里的问题是试图使用索引,但我在解决方案方面做得不够,比如如何在不使用索引的情况下指定调用哪个数字(“elif opcao==2”中的f1[0])。有什么指导吗?
尝试取出上面提到的f1[0]中的索引,当程序可以运行时,终端将显示“Senha nÃ:mero[-1,-1]estÃsendo chamada”,或者“正在调用数字[-1,-1]”。