在Python Pygame中使用数组生成行

在Python Pygame中使用数组生成行,python,arrays,pygame,lines,Python,Arrays,Pygame,Lines,我试图在Pygame中通过从数组索引调用点坐标来画线。但是,这将返回一个错误: 回溯(最近一次调用上次):文件 “C:/Python33/Games/lineTest.py”,第33行,在 pygame.draw.line(窗口表面,黑色,(0,0),(0,列表[j]),3)索引器:列表索引超出范围 这是我的密码: import pygame, sys, random, time from pygame.locals import * # sets up pygame pygame.init(

我试图在Pygame中通过从数组索引调用点坐标来画线。但是,这将返回一个错误:

回溯(最近一次调用上次):文件 “C:/Python33/Games/lineTest.py”,第33行,在 pygame.draw.line(窗口表面,黑色,(0,0),(0,列表[j]),3)索引器:列表索引超出范围

这是我的密码:

import pygame, sys, random, time
from pygame.locals import *

# sets up pygame
pygame.init()

# sets up the window
windowSurface = pygame.display.set_mode((500, 500), 0, 32)
pygame.display.set_caption('Line Test')

# sets up the colors
BLACK = (0, 0, 0)
WHITE = (255, 255, 255)

# draw white background
windowSurface.fill(WHITE)

print('Please enter a number:')
number = input()

# generate random numbers for array
i = 0
list = []
while int(number) > i:
    i = i+1
    x = random.randint(1, 500)
    list.append(x)

# draw lines
j = 0
while int(number) > j:
    j = j+1
    pygame.draw.line(windowSurface,BLACK,(0,0), (0, list[j]), 3)

# Draw the window to the screen
pygame.display.update()

我想知道是否有人可以解决此错误?

在使用计数器之前,您在计数器
I
j
中添加了一个,因此您尝试访问列表末尾之外的一个索引项

此外:

  • 不要调用自己的变量
    list
    ;及
  • 对循环使用
    ,这就是它们的用途
    例如:

    lst = []
    for n in range(number):
         lst.append(...) # or google "python list comprehension"
    
    for item in lst:
        # use item
    

    在使用计数器之前,您将其添加到计数器
    i
    j
    ,因此您尝试访问列表末尾之外的一个索引项

    此外:

  • 不要调用自己的变量
    list
    ;及
  • 对循环使用
    ,这就是它们的用途
    例如:

    lst = []
    for n in range(number):
         lst.append(...) # or google "python list comprehension"
    
    for item in lst:
        # use item
    

    交换
    j=j+1
    pygame.draw.line(windowSurface,黑色,(0,0),(0,list[j]),3)
    也可以在循环时查看而不是
    。太棒了,切换这两条线很有效。非常感谢。交换
    j=j+1
    pygame.draw.line(windowSurface,黑色,(0,0),(0,list[j]),3)
    也可以在循环时查看而不是
    。太棒了,切换这两条线很有效。谢谢大家!+1用于for循环。2014年,任何人都不必处理一个接一个的错误。+1用于for循环。2014年,任何人都不应该一个接一个地处理错误。