是否有python 3命令清除输出控制台?

时间:2019-12-27 06:54:18

标签: python-3.x console pycharm

因此,我尝试在PyCharm中制作一个简单的Conway生活游戏,我只能在输出控制台中获得一堆输出,而没有像流之类的视频。是否有一条命令可以让我清除程序中每个循环的输出。我已经尝试过“ sys”命令和ANSI转义键(希​​望我拼写正确)。似乎没有任何作用!我正在使用Python 3。

我想在while循环的第一个打印语句上清除控制台。如果有帮助。

import copy
import random
import time
WIDTH = 60
HEIGHT = 10


nextCells = []
for x in range(WIDTH):
    column = []
    for y in range(HEIGHT):
        if random.randint(0, 1) == 0:
            column.append('#')
        else:
            column.append(' ')
    nextCells.append(column)

while True:
    # print('\n\n\n\n')
    currentCells = copy.deepcopy(nextCells)

    for y in range(HEIGHT):
        for x in range(WIDTH):
            print(currentCells[x][y], end='')
        print()

2 个答案:

答案 0 :(得分:1)

在命令提示符(不是PyCharm控制台)上,尝试使用colorama库将光标移回并打印当前迭代中的下一个迭代(colorama使ANSI控制代码与Windows兼容) :

({colorama可以通过pip install colorama安装)

import copy
import random
import time

import colorama
colorama.init()

WIDTH = 60
HEIGHT = 10

nextCells = []
for x in range(WIDTH):
    column = []
    for y in range(HEIGHT):
        if random.randint(0, 1) == 0:
            column.append('#')
        else:
            column.append(' ')
    nextCells.append(column)

while True:
    #print('\n\n\n\n')
    currentCells = copy.deepcopy(nextCells)

    for y in range(HEIGHT):
        for x in range(WIDTH):
            print(currentCells[x][y], end='')
        print()
    for x in range(WIDTH):
        for y in range(HEIGHT):
            leftCoord = (x - 1) % WIDTH
            rightCoord = (x + 1) % WIDTH
            aboveCoord = (y - 1) % HEIGHT
            belowCoord = (y + 1) % HEIGHT

            numNeighbors = 0
            if currentCells[leftCoord][aboveCoord] == '#':
                numNeighbors += 1
            if currentCells[x][aboveCoord] == '#':
                numNeighbors += 1
            if currentCells[rightCoord][aboveCoord] == '#':
                numNeighbors += 1
            if currentCells[leftCoord][y] == '#':
                numNeighbors += 1
            if currentCells[rightCoord][y] == '#':
                numNeighbors += 1
            if currentCells[leftCoord][belowCoord] == '#':
                numNeighbors += 1
            if currentCells[x][belowCoord] == '#':
                numNeighbors += 1
            if currentCells[rightCoord][belowCoord] == '#':
                numNeighbors += 1

            if currentCells[x][y] == '#' and (numNeighbors == 2 or numNeighbors == 3):
                nextCells[x][y] = '#'
            elif currentCells[x][y] == ' ' and numNeighbors == 3:
                nextCells[x][y] = '#'
            else:
                nextCells[x][y] = ' '

    # Here we move the cursor back up:
    print(f'\033[{HEIGHT+1}A')

    time.sleep(1)

答案 1 :(得分:0)

从此https://www.jetbrains.com/help/pycharm/interactive-console.html开始。 它基本上使用基于系统的python解释器,没有直接的方法或命令来清除Python解释器控制台。 因此,您需要系统调用以清除Python解释器控制台屏幕。对于窗口系统,cls清除控制台。对于Linux系统,clear命令有效。 它要求导入OS库。

import os clear = lambda: os.system('cls') #on Windows System os.system('clear') #on Linux System clear()

Python中的“ lambda”关键字用于定义匿名函数。

import os在python 3中是内置的