web-dev-qa-db-ja.com

Python上下に改行なしのヒアドキュメント

上下に改行を入れずにヒアドキュメントを作成する最良の方法は何ですか?例えば:

print '''
dog
cat
'''

上部と下部に改行があり、それらを取り除くにはこれを行う必要があります:

print '''dog
cat'''

私ははるかに読みにくいと思う。

47
Juan

これはどう?

print '''
dog
cat
'''[1:-1]

または、最初の行にインデントがないか、最後の行に後続スペースがない限り:

print '''
dog
cat
'''.strip()

または、文字列を前後にすっきりさせたい場合は、文字列を適切にインデントできるのと引き換えに:

from textwrap import dedent

...

print dedent('''
    dog
    cat
    rabbit
    fox
''').strip()
63
Weeble

不要な行の最後にバックスラッシュ\を追加します。

 text = '''\
 cat
 dog\
 '''

多少読みやすいです。

28
user2622016

括弧を使用します。

_print (
'''dog
cat'''
)
_

str.strip()を使用します

_print '''
dog
cat
'''.strip()
_

str.join()を使用します

_print '\n'.join((
    'dog',
    'cat',
    ))
_

strip()を使用できます:

print '''
dog
cat
'''.strip()
7
NPE

実際に複数行の構文が必要ですか?なぜ改行を埋め込むだけではないのですか?

印刷「dog\ncat」はどちらよりもはるかに読みやすいと思います。

1
Tyler Eaves