3

我正在尝试在命令行中构建一个简单的板。

问题: 当我使用“\n”结束当前行时,它会添加一个额外的空白行。我该如何解决?

代码:

def drawBoard():
    board = [ [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,3,2,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]
            ]
    return board

def printBoard():
    for i in drawBoard():
        for a in i:
            print a,
        print "\n"

printBoard()

输出:

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 3 2 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 

谢谢你的帮助。

4

4 回答 4

8

使用join(), 不依赖, for 格式,而且print每次都会自动将光标放在换行符上,所以不需要'\n'在你的print.

In [24]: for x in board:
    print " ".join(map(str,x))
   ....:     
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 3 2 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
于 2012-11-17T20:20:54.140 回答
8

这:

    print "\n"

正在打印出两个\n字符——一个是你告诉它的,另一个是 Python 在任何不以,你在print a,. 只需使用

    print

反而。

于 2012-11-17T20:21:00.977 回答
2

python中的打印函数添加自己\n

你可以使用

import sys
sys.stdout.write(a)

反而

于 2012-11-17T21:56:26.547 回答
0

在打印“\n”行之后添加 ,

使其显示为 print "\n",

于 2012-11-17T20:21:33.757 回答