如何改进此代码以更快地运行?

时间:2015-07-09 17:01:09

标签: python python-2.7

我用Python制作粉末玩具,我遇到了一些问题。首先,代码运行得很慢。我知道问题出在我的主文件中:http://pastebin.com/bbQ4H4Xu。其他文件只是检测输入/创建2d数组,所以问题不存在。

在我的主文件中,问题似乎出现在方法updatescreen()中。如何提高此功能的性能?

import pygame
#inputkey.py
from pygame.locals import *
def input_key():
global inputt
inputt = ""
key = pygame.key.get_pressed()
if key[K_q]:
    return 'q'
elif key[K_w]:
    return 'w'
elif key[K_e]:
    return 'e'
elif key[K_r]:
    return 'r'

#Createblocks.py
blocks = []
for i in range(400):
     blocks.append([])
          for j in range(400):
          blocks[i].append(0)

1 个答案:

答案 0 :(得分:1)

您的Main.py文件在循环中有一个print语句:

def updatescreen():
    #The problem is here, it slows down the code.
    for i in range(windh):
        for x in range(windw):
            print x, i #          <== Here
            if not blocks[i][x] == 0:
                if blocks[i][x] == "Stone":
                    screen.blit(elementStone, (x,i))

大概是为了调试?这是执行windw * windh = 2,500次打印操作,这肯定会减慢代码速度。尝试删除它,看看它是如何改进的。