如何使输出更快?

时间:2018-12-12 20:36:23

标签: python python-idle

import time
import sys
try:                                                                        
    shell = sys.stdout.shell
except AttributeError:
    raise RuntimeError("you must run this program in IDLE")

Grid=[[0,0,0,0,0,1,0,0,0,0,],[0,0,0,0,0,0,0,0,0,0,],[0,0,0,0,0,0,0,0,0,0,],[0,0,0,0,0,0,0,0,0,0,],[0,0,0,0,0,0,0,0,0,0,],[0,0,0,0,0,0,0,0,0,0,],[0,0,0,0,0,0,0,0,0,0,],[0,0,0,0,0,0,0,0,0,0,],[0,0,0,0,0,0,0,0,0,0,],[0,0,0,0,0,0,0,0,0,0,],[0,0,0,0,0,0,0,0,0,0,],[0,0,0,0,0,0,0,0,0,0,],[0,0,0,0,0,0,0,0,0,0,],[0,0,0,0,0,0,0,0,0,0,],[0,0,0,0,0,0,0,0,0,0,],[0,0,0,0,0,0,0,0,0,0,],[0,0,0,0,0,0,0,0,0,0,],[0,0,0,0,0,0,0,0,0,0,],[0,0,0,0,0,0,0,0,0,0,],[0,0,0,0,0,0,0,0,0,0,]]
counterX=0
counterY=0
while (counterX<=10 and counterY<=19):
    if(Grid[counterY-1][counterX-1]==0):
        if (counterX!=10):
            shell.write("⬛")
        else:
            shell.write("⬛\n")
    if(Grid[counterY-1][counterX-1]==1):
        if (counterX!=10):
            print("⬛", end="")
        else:
            print("⬛")
    if(counterX!=10):
        counterX+=1
    else:
        counterX=0
        counterY+=1
i=0
for i in range (0,44):
    print("")
    i+=1

我面临着使用ASCII创建GUI游戏的挑战,在这样做时,我会打印每个游戏状态的游戏网格(我将其打印出来,以便看起来它已经取代了最后一个游戏状态向下打印了足够多的行,因此看起来好像在同一位置。)我分别打印每个图块,因为我需要我的对象采用不同的颜色来区分背景和对象。 (我尚未添加'如果值1使颜色变为红色”)

无论如何,当打印出来时,您可以看到它逐行打印。快速但引人注目。如何一次全部打印?

新代码将在全屏shell窗口上进行测试

1 个答案:

答案 0 :(得分:0)

如果直接从命令行使用python而不是IDLE运行代码,则打印输出的显示速度可能会更快。如果您一次打印整行而不是一次打印一个字符,它也应该显示得更快。如果将所有行计算为一个字符串,然后一次打印一次打印所有内容,则可能会更快。