2016-11-30 9 views
3

なし?印刷複数行の文字列変数私はインデントせずにコンソールに複数行の文字列変数を印刷するにはどうすればよいインデント

# Grid. 
grid = """rnbqkbnr 
      pppppppp 
      ******** 
      ******** 
      ******** 
      PPPPPPPP 
      RNBQKBNR""" 

# Show grid. 
print(grid) 

を出力は以下の通りです:

rnbqkbnr 
      pppppppp 
      ******** 
      ******** 
      ******** 
      PPPPPPPP 
      RNBQKBNR 

これは私が探しています出力されます:

rnbqkbnr 
pppppppp 
******** 
******** 
******** 
PPPPPPPP 
RNBQKBNR 
+2

クロスサイトデュープ://:http://codereview.stackexchange.com/q/60366 – jonrsharpe

+0

これは、[一般的なアルゴリズム](HTTPSが存在するためにドキュメントの文字列、と非常によく似ていますwww.python.org/dev/peps/pep-0257/#handling-docstring-indentation)を参照してください。そこからコードを再利用することができます。 – poke

答えて

2
print('\n'.join(grid.split())) 

行の末尾に\を置く

# Grid. 
grid = """\ 
rnbqkbnr 
pppppppp 
******** 
******** 
******** 
PPPPPPPP 
RNBQKBNR""" 

# Show grid. 
print(grid) 

は不要な改行文字を削除します。

+2

これはOPの具体例にとって満足のいく解決策ですが、世話をする:。。テキストグリッドは、内部空間が含まれている場合、それらは同様に、分割を取得する例を ' 「FOOバー\をn個AAAAAAA \ nはBBBBBBB」別の行に '「foo」を置くと「バー」。 – Kevin

+0

おかげで、素敵なものを。 – maartenpaauw

+1

メモこれも望ましいことではないかもしれませんネストされたインデントを取り除くということ。 – poke

1

私は成功せずにこれを試した瞬間

単に"""の内部にインデントをしないでください。

# Grid. 
grid = """rnbqkbnr 
pppppppp 
******** 
******** 
******** 
PPPPPPPP 
RNBQKBNR""" 

# Show grid. 
print(grid) 

作品予想通り。

for line in grid.splitlines(): 
    print(line.strip()) 
+1

これは最も簡単な解決策です。そして、あなたは「RNB ...」ラインは、ソース内の行の残りの部分とうまく整合するようにしたい場合は、あなたが 'グリッド=「」" \ ''してからRNBを入れて... '次の行に行うことができます。 。。 – Kevin

+0

あなたの答えと時間をありがとうしかし、私は、このソリューションを避けたい – maartenpaauw

2

これを試してください:あなたが残しておきたいあなたのラインで内部空間を持っている場合

+0

おかげで、素晴らしいソリューションです。 – maartenpaauw

0

reモジュールを試してみて、すべての行のために先頭のスペースを削除でした:

grid = """rnbqkbnr 
      pppppppp 
      ******** 
      ******** 
      ******** 
      PPPPPPPP 
      RNBQKBNR""" 
​ 
import re 
print(re.sub('^\s+', '', grid, flags=re.MULTILINE)) 

rnbqkbnr 
pppppppp 
******** 
******** 
******** 
PPPPPPPP 
RNBQKBNR 
1

使用textwrap.dedent(text)を。

>>> from textwrap import dedent 
>>> dedent("""\ 
    rnbqkbnr 
    pppppppp 
    ******** 
    ******** 
    ******** 
    PPPPPPPP 
    RNBQKBNR""") 
'rnbqkbnr\npppppppp\n********\n********\n********\nPPPPPPPP\nRNBQKBNR' 
>>> print(_) 
rnbqkbnr 
pppppppp 
******** 
******** 
******** 
PPPPPPPP 
RNBQKBNR 
1
def unindent(string): 
    return ''.join(map(str.lstrip, string.splitlines(1))) 

# Grid. 
grid = """rnbqkbnr 
      pppppppp 
      ******** 
      ******** 
      ******** 
      PPPPPPPP 
      RNBQKBNR""" 

# Show grid. 
print(unindent(grid)) 
関連する問題