Python"\n"标记额外的行

int*_*lis 3 python newline

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

问题: 当我使用"\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()
Run Code Online (Sandbox Code Playgroud)

输出:

0 0 0 0 0 0 0 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 
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助.

Ash*_*ary 8

使用join(),不依赖于, 格式化,并且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
Run Code Online (Sandbox Code Playgroud)


DSM*_*DSM 8

这个:

    print "\n"
Run Code Online (Sandbox Code Playgroud)

正在打印出两个\n字符 - 你告诉它的那个字符,以及Python在任何一行的末尾打印出来的字符,它不会,像你使用的那样结束print a,.简单地使用

    print
Run Code Online (Sandbox Code Playgroud)

代替.