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()依存しないでください。また、カーソルを毎回自動的に改行に配置するため、に別の行を追加する必要はありません。,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"

2つの文字を出力しています.1つはあなたが指示したもので、Pythonはあなたが使用\nするようなもので終わらない行の最後に出力するものです. 単に使用する,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 に答える