我正在编制库存代码,当我点击x,列表中的空间被填充,当我点击列表中的za pos被删除时,以及当我点击c列表被打印。我知道代码效率很低,但这只是为了在这个阶段进行测试,所以忽略if语句的深度。无论如何,如果inv [0]没有行以及该部分中的所有内容,我在我的错误。错误是'列表索引超出范围'有没有人知道我做错了什么?'列表索引超出范围'错误
import pygame, sys
pygame.init()
i= 1
inv = []
#Code below will add an item to that list.
w, h = 1000, 600
DISPLAYSURF = pygame.display.set_mode((w, h))
while True:
DISPLAYSURF.fill((255, 255, 255))
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
elif event.type == pygame.KEYDOWN:
这是为了填补名单
if event.key == pygame.K_x:
if inv[0] == None:
inv[0] = 'an_item'
elif inv[1] == None:
inv[1] = 'an_item'
elif inv[2] == None:
inv[2] = 'an_item'
elif inv[3] == None:
inv[3] = 'an_item'
elif inv[4] == None:
inv[4] = 'an_item'
else:
print("No inventory space")
这是当按下一键清空列表中的位置的位置。我知道这是低效的,但我不认为它应该影响它:
if event.key == pygame.K_z
if inv[4] == none:
if inv[3] == None:
if inv[2] == None:
if inv[1] == None:
if inv[0] == None:
print('Nothing to drop!')
else: inv[0] None
else:
inv[1] = None
else:
inv[2] = None
else:
inv[3] = None
else:
inv[4] = None
这句话是打印列表,当按下C键
if event.key == pygame.K_c:
print(inv)
从您发布的代码中,您可以通过inv [0]访问空列表'inv'。不过,请发布完整的追溯。 –
你的代码有很多错误。检查没有,并在您的代码中替换为无。在内部最缩进的else条件中缺少赋值运算符“=”。 'inv'只是空列表,没有什么可迭代的,所以你得到indexError。 –
@ d-coder哦,很好。 –