我不明白为什么我的循环中出现"pop from empty list"错误


def click(self,floor):
self.order.append(floor)
self.label.config(text="Order list: {}".format(self.order))
# door process.
self.elevator.openDoor()
time.sleep(1)
if self.order:
self.draw_floor(FRAME_LIST[0])
self.elevator.closeDoor()

while self.order:
self.elevator.gotoFloor(self.order[0])
while len(FRAME_LIST) > 1:
time.sleep(0.5)
self.draw_floor(FRAME_LIST[0])
FRAME_LIST.pop(0)
time.sleep(0.5)
self.draw_floor(FRAME_LIST[0])
# door process.
self.elevator.openDoor()
self.draw_floor(FRAME_LIST[0])
time.sleep(1)
self.elevator.closeDoor()
self.draw_floor(FRAME_LIST[0])
self.order.pop(0)
self.label.config(text="Order list: {}".format(self.order))
if FRAME_LIST:
self.draw_floor(FRAME_LIST[0])

"self.order;是一个列表。这个方法是由几个tkinter按钮触发的。然而,如果我快速按下这些按钮,我会收到错误消息";从空列表弹出",然后是我的测试打印输出";pop((之前:[]"。在这个while循环中,列表怎么可能是空的;列表>[]";或";列表!=[]"现在,就连我也把条件改成了";而self-order";,错误仍然存在。

如果您想要测试self.order的条件,那么它不应该是空列表。则使用条件作为len(self.order(>0这应该是合适的,而不是你现有的。

最新更新