鱼C论坛

 找回密码
 立即注册
查看: 1637|回复: 6

[已解决]为什么会IndexError: list index out of range

[复制链接]
发表于 2019-3-19 11:36:38 | 显示全部楼层 |阅读模式
10鱼币
  1. import pygame
  2. import sys
  3. import linecache
  4. from pygame.locals import *

  5. a = 1
  6. b = []
  7. c = 0

  8. pygame.init()
  9. screen = pygame.display.set_mode((1600,900))
  10. qiu = pygame.image.load('qiu.png')
  11. size = linecache.getline('shi.txt',a).strip()
  12. d = int(size)
  13. for i in range(d):
  14.     a += 1
  15.     s = linecache.getline('shi.txt',a).strip()
  16.     b.append(s)
  17. print(d)
  18. print(b)
  19. while 1:
  20.     for event in pygame.event.get():
  21.         if event.type == QUIT:
  22.             pygame.quit()
  23.             sys.exit()
  24.             
  25.     screen.fill((255,255,255))
  26.    
  27.     for i in range(int(d/2)):
  28.         screen.blit(qiu,(int(b[c]),int(b[c+1])))
  29.         c += 2
  30.         print(i)
  31.     pygame.display.flip()
复制代码


shi.txt 里面是五行,分别是4,200,200,600,600.
但是运行时会说我‘screen.blit(qiu,(int(b[c]),int(b[c+1])))’这一行IndexError: list index out of range,咋回事啊,大佬们
最佳答案
2019-3-19 11:36:39
三千芳华 发表于 2019-3-19 15:25
看了,感觉没越界,所以才想不通啊

你打印 int(d/2)再看看

最佳答案

查看完整内容

你打印 int(d/2)再看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-3-19 11:36:39 | 显示全部楼层    本楼为最佳答案   
三千芳华 发表于 2019-3-19 15:25
看了,感觉没越界,所以才想不通啊

你打印 int(d/2)再看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-3-19 11:40:58 | 显示全部楼层
你调试看看b,然后还有每次循环时c的大小,看是不是越界了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-3-19 11:46:12 | 显示全部楼层
列表的月姐了。列表的下标值你得限定在该列表最大长度小一的范围内
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2019-3-19 15:24:13 | 显示全部楼层
a1104201 发表于 2019-3-19 11:46
列表的月姐了。列表的下标值你得限定在该列表最大长度小一的范围内

没找到哪里越界了啊,d = 4,d/2 = 2,循环两次,b[0].b[1],b[2].b[3],d里面是['200','200','600','600'],没问题啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2019-3-19 15:25:06 | 显示全部楼层
BngThea 发表于 2019-3-19 11:40
你调试看看b,然后还有每次循环时c的大小,看是不是越界了

看了,感觉没越界,所以才想不通啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2019-3-19 15:34:26 | 显示全部楼层
BngThea 发表于 2019-3-19 15:29
你打印 int(d/2)再看看

看到在哪里了,谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-21 16:14

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表