当我尝试从列表中弹出X张卡片时,它说我无法从空列表中弹出,但是我敢肯定,然后列表应该已满!还有另一种方法吗
while len(dogs) > 0:
for i in range(0,CardAmount):
playersDeck.append(dogs.pop(0))
computersDeck.append(dogs.pop(0))
完整代码: https://dumptext.com/4HhdTFRj
Dogs.txt文件: https://dumptext.com/BPDsU9Hl
控制台错误:
playersDeck.append(dogs.pop(0))
IndexError: pop from empty list
答案 0 :(得分:0)
在while循环的每次迭代中,您将CardAmount
张卡片的数量分配给playersDeck
,将CardAmount
张卡片的数量分配给computerDeck
,因此至少需要{{ 1}}就能进行循环。
因此,不必检查2*CardAmount
,而必须检查if len(dogs) > 0
,以便进行循环操作
if len(dogs) >= 2*CardAmount
顺便说一句,您不必做循环中的流行音乐,而是可以这样做:
while len(dogs) >= 2*CardAmount:
for i in range(0, CardAmount):
playersDeck.append(dogs.pop(0))
computersDeck.append(dogs.pop(0))