web-dev-qa-db-fra.com

Python ici document sans retour à la ligne en haut et en bas

Quelle est la meilleure façon d'avoir un document ici, sans retour à la ligne en haut et en bas? Par exemple:

print '''
dog
cat
'''

aura des nouvelles lignes en haut et en bas, et pour m'en débarrasser, je dois faire ceci:

print '''dog
cat'''

que je trouve beaucoup moins lisible.

47
Juan

Que dis-tu de ça?

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

Ou tant qu'il n'y a pas de retrait sur la première ligne ou d'espace de fin sur la dernière:

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

Ou même, si cela ne vous dérange pas un peu plus d'encombrement avant et après votre chaîne en échange de pouvoir bien l'indenter:

from textwrap import dedent

...

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

Ajoutez une barre oblique inversée\à la fin des lignes indésirables:

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

C'est un peu plus lisible.

28
user2622016

utilisez des parenthèses:

print (
'''dog
cat'''
)

Utilisez str.strip()

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

utilisez str.join()

print '\n'.join((
    'dog',
    'cat',
    ))

Vous pouvez utiliser strip():

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

Avez-vous réellement besoin de la syntaxe multiligne? Pourquoi ne pas simplement ajouter une nouvelle ligne?

Je trouve l'impression "dog\ncat" bien plus lisible que les deux.

1
Tyler Eaves