微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

调用列表中的列表时出现索引错误

如何解决调用列表中的列表时出现索引错误

我对 python 非常陌生,正在尝试使用 pygame 制作国际象棋游戏。对于棋子的位置(特别是第一个 pawn),我在一个列表中有一个列表,该列表引用了第一个列表中的索引。稍后当这个列表被调用时,当它们肯定在范围内时,我得到“IndexError:list index out of range”......希望有一点知识的人可以解释这个吗?

我想不出另一种方法来将碎片的位置分配给它们的变量,而且错误并不完全准确,所以老实说我不知道​​。

pawnA2 = [WHITE_PAWN,1,2]
pawnA2 == [WHITE_PAWN,2,[(pawnA2[1]),(pawnA2[2] + 1)]]

200 行之后...

for event in pygame.event.get():
    if event.type == pygame.MOUSEBUTTONDOWN:
        if ((pawnA2[1] - 1) * 100 + 5 ) < event.pos[0] < (pawnA2[1] * 100 + 5 ) and (8 - pawnA2[2]) * 100 + 5 < event.pos[1] < (((8 - pawnA2[2]) + 1) * 100 + 5 ):
            print("yes")
            screen.blit(MOVABLE_SPACE,(((pawnA2[3][0]) - 1) * 100 + 30,(8 - pawnA2[3][1]) * 100 + 30))
        else:
            screen.blit(third_surface,(5,505))
update_screen()

错误中引用的行是:

screen.blit(MOVABLE_SPACE,(8 - pawnA2[3][1]) * 100 + 30))

解决方法

您在 == 赋值中使用 = 而不是 pawnA2,导致语句的计算结果为 false 而不更改 pawnA2

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。