打印多行

时间:2018-02-06 04:03:48

标签: python python-3.x python-2.7 console

for index in range(0, len(order_of_fruits)):
    maze[prevY][prevX] = ' '
    curr = order_of_fruits[index]
    maze[curr[1]][curr[0]] = 'P'
    prevX = curr[0]
    prevY = curr[1]

    result_maze = ""
    for i in range(len(maze)):
        for j in range(len(maze[0])):
            result_maze = result_maze + maze[i][j]
        result_maze = result_maze + '\n'

    animation.append(result_maze)

#animate
for index in range(0, len(animation)):
    time.sleep(0.2)
    sys.stdout.write("\r" + str(animation[index]))
    sys.stdout.flush()

嗨,我的问题是我有一个二维数组,其条件将更新。然后我将每个更新的数组转换为字符串,并将每个字符串附加到用于在控制台中打印的列表。现在我想要打印已经转换为字符串的迷宫的变化条件。我使用了" \ r"和冲洗但它不起作用。我想这可能是因为我有" \ n"在我的每一个字符串中。那么有什么方法可以在控制台上打印迷宫系列吗?所以结果看起来只有一个迷宫出现在控制台上,其条件将每0.2更新一次? 谢谢!

2 个答案:

答案 0 :(得分:0)

" \ R"也许放在最后。

import time
for index in range(0, len(animation)):
    sys.stdout.write(str(animation[index]) + "\r")
    sys.stdout.flush()
    time.sleep(0.2)

答案 1 :(得分:0)

您可以考虑使用curses模块。此程序更新屏幕,等待0.2秒,然后再次更新屏幕:

from curses import wrapper
import time

def main(stdscr):
    stdscr.clear()
    for i in range(5):
        for y in range(5):
            for x in range(5):
                stdscr.addstr(y, x, chr(ord('1')+i))
            stdscr.refresh()
            time.sleep(0.2)
    stdscr.getkey()

wrapper(main)