变量不会在数组括号内减1.我做错了什么?



谁能帮我解决这个问题?时隔多年又重新开始编程。在来这里之前,我确实在网上做了一些搜索。我注意到i需要递减,所以我这样做了,我通常在几乎所有其他语言中这样做。为什么python给我这么多麻烦(语法错误)减少ienemies[]1 ?

for i in range(len(enemies)):
enemy_x, enemy_y, enemy_speed = enemies[i -= 1]

i -= 1是一个赋值语句(它会导致对i重新赋值),而不是一个带值的表达式。[]操作符需要一个可以用作索引的值。

因为for i in range...给你增加i的值,你不想在循环中重新分配i;只需从中减去并使用结果值:

for i in range(len(enemies)):
enemy_x, enemy_y, enemy_speed = enemies[i - 1]

注意,循环的第一次迭代将给你最后一个敌人(enemies[-1])。如果这不是您想要的,您可能会发现直接迭代enemies更容易:

for enemy_x, enemy_y, enemy_speed in enemies:
# do stuff with those three variables

最新更新