Python 代码给出了 IndexError 尽管给出了输出

Python code gives IndexError despite giving ouput

我在 python 代码中得到一个 IndexError

这是代码:

n = int(input())  
cardp_1 = [input() for i in range(n)]
warcount=0
m = int(input())  
cardp_2 = [input() for j in range(m)]
while cardp_1 != [] or cardp_2 != []:
    # print(cardp_1[0],cardp_2[0])
    c1 = cardp_1[0]
    c2 = cardp_2[0]
    res = stronger(c1, c2)
    if res == 1:
        cardp_1.remove(c1)
        cardp_2.remove(c2)
        cardp_1.append(c1)
        cardp_1.append(c2)
    elif res == 2:
        cardp_1.remove(c1)
        cardp_2.remove(c2)
        cardp_2.append(c1)
        cardp_2.append(c2)
if cardp_2 == []:
    print('2', warcount)
else:
    print('1', warcount)

程序应该 运行 就好了,相反,它给出 IndexError :

Traceback (most recent call last):   File
"C:/Users/risha/PycharmProjects/HelloWorld/cards_war.py", line 9, in
<module>
    c2 = cardp_2[0] IndexError: list index out of range

奇怪的是,我尝试在 while 循环中打印 c1c2 的值,并且每次迭代都会打印它。

这个循环:

while cardp_1 != [] or cardp_2 != []:

说只要 either 数组不为空就继续迭代,但是你做的第一件事就是从 both[=17 中获取第一个元素=].如果一个数组为空,您将遇到您描述的错误。