我正在尝试在命令行中构建一个简单的板.
问题: 当我使用"\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)
谢谢你的帮助.
使用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)
这个:
print "\n"
Run Code Online (Sandbox Code Playgroud)
正在打印出两个\n字符 - 你告诉它的那个字符,以及Python在任何一行的末尾打印出来的字符,它不会,像你使用的那样结束print a,.简单地使用
print
Run Code Online (Sandbox Code Playgroud)
代替.