59 votes

Python ici document sans sauts de ligne en haut et en bas

Quelle est la meilleure façon d'avoir un document ici, sans sauts de 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.

80voto

Weeble Points 6248

Que dis-tu de ça?

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

Ou tant qu'il n'y a pas d'indentation 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 l'indenter joliment :

 from textwrap import dedent

...

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

39voto

user2622016 Points 773

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

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

C'est un peu plus lisible.

23voto

IfLoop Points 59461

utilisez des parenthèses :

 print (
'''dog
cat'''
)

Utiliser str.strip()

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

utiliser str.join()

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

7voto

NPE Points 169956

Vous pouvez utiliser strip() :

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

-3voto

Tyler Eaves Points 5758

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

Je trouve que l'imprimé "dog\ncat" est beaucoup plus lisible que l'un ou l'autre.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X