替换python中的多行现有输出

时间:2016-08-18 10:45:58

标签: python python-2.7 python-3.x ipython jupyter-notebook

在python 3中,有关于如何用另一个替换现有输出的答案。 这些答案建议使用end =' \ r'印刷品中的广告('你好',结束=' \ r') 这是工作的,但它只适用于一行。

在我发布的程序中,我首先输出5行,这是表矩阵的表示。要求用户键入一个数字(1-3),然后再次使用' X'来打印矩阵。在用户指示的位置。

但正如您所看到的,矩阵打印在初始矩阵下方。如何更换现有输出?

如果我使用结束=' \ r'它只会将光标移动到行的开头。但这对我不起作用,因为我想要打印5行,然后将光标移动到第一行的开头,而不是第五行的开头(作为结束=' \ r&#39 ;确实)。

我怎么能在python中实现这一点?

from __future__ import print_function
list1=[' '*11,'|',' '*7,'|',' '*10] 

def board():
    print ('\t \t | \t \t |')
    print (list1)
    print ('\t \t | \t \t |')
    #print '\n'
    print

def playerone():    
    player1 = raw_input("PLAYER1: enter your position 1-3: ")
    if (player1 == '1'):
        list1[0]=' '*5 + 'X'+' '*5
    elif (player1=='2'):
        list1[2]=' '*3 + 'X'+' '*3
    elif (player1=='3'):
        list1[4]=' '*3 + 'X'+' '*6
    else:
        playerone()

print ('our board is : ')
board()

playerone()

print ('our board is :')
board()

3 个答案:

答案 0 :(得分:0)

除非你想使用诅咒(这是另一个重要的步骤),否则你不能回过头几行。

但你能做的就是清除屏幕并重新显示所有内容。

print(chr(27) + "[2J")

清除屏幕

(如clear terminal in python中所述)

答案 1 :(得分:0)

您可以在打印电路板之前清除屏幕。

def clearscreen(numlines=100):
"""Clear the console.
numlines is an optional argument used only as a fall-back.
"""
import os
if os.name == "posix":
    # Unix/Linux/MacOS/BSD/etc
    os.system('clear')
elif os.name in ("nt", "dos", "ce"):
    # DOS/Windows
    os.system('CLS')
else:
    # Fallback for other operating systems.
    print '\n' * numlines

在电路板()内部,您可以在打印电路板之前调用清除屏幕()清除屏幕。

答案 2 :(得分:0)

尝试使用终端的清除命令尝试使用便携式解决方案,例如:

define(['app','dataSourceDirectives'], 
    function (app) {
        app.register.controller('data-source.connectionController', ['$scope', 
            function ($scope) {
                $scope.initializeController = function () {
            }
    }]); 
});