Bienvenue sur IndexError.

Ici vous pouvez poser des questions sur Python et le Framework Django.

Mais aussi sur les technos front comme React, Angular, Typescript et Javascript en général.

Consultez la FAQ pour améliorer vos chances d'avoir des réponses à vos questions.

Quand les chaînes de caractères sont très longues...

+10 votes

Comment faire lorsque les chaînes de caractères sont longues ?
Avant je mettais le tout sur une seule ligne, mais je crois que c'est déconseillé par la PEP.

msg = "Ce programme a été créé pour vous permettre de lancer une image iso sans avoir besoin de la graver.\n\nLe script lu par Grub a été créé par Arbiel.\nLa fenêtre que vous avez sous les yeux a été codée par Laërte\n\nCe programme nécessite que vous utilisiez Grub comme chargeur d'amorçage. Si ce n'est pas le cas, consultez la liste des paquets fournis par votre distribution pour l'installer. Sans Grub, ce programme n'est d'aucune utilité."

Ce n'est pas vraiment lisible... L'autre solutionest d'encadrer le tout par trois guillemets.

msg = """Ce programme a été créé pour vous permettre de lancer une image iso sans avoir besoin de la graver.


Le script lu par Grub a été créé par Arbiel.
La fenêtre que vous avez sous les yeux a été codée par Laërte

Ce programme nécessite que vous utilisiez Grub comme chargeur d'amorçage. Si ce n'est pas le cas, consultez la liste des paquets fournis par votre distribution pour l'installer. Sans Grub, ce programme n'est d'aucune utilité."""

Mais ce n'est pas vraiment lisible non plus, surtout lorsque la chaîne est créé dans une méthode d'une classe. Le décalage dû à l'indentation devient embêtant.

La troisième méthode (celle que j'utilise en ce moment), est plus lisible, mais elle multiplie les instructions et je doute que ce soit très propre.

msg = "Ce programme a été créé pour vous permettre de lancer une image iso sans avoir besoin de la graver.\n\n"
msg += "Le script lu par Grub a été créé par Arbiel.\n"
msg += "La fenêtre que vous avez sous les yeux a été codée par Laërte\n\n"
msg += "Ce programme nécessite que vous utilisiez Grub comme chargeur d'amorçage. "
msg += "Si ce n'est pas le cas, consultez la liste des paquets fournis par votre distribution pour l'installer. "
msg += "Sans Grub, ce programme n'est d'aucune utilité."

Laquelle de ces méthodes est à priviligier pour avoir un code lisible, propre et clair ?

demandé 18-Mai-2015 par Laërte (346 points)

2 Réponses

+18 votes
 
Meilleure réponse
>>> msg = ("Les chaînes peuvent être séparées "
... "par des espaces et seront concaténées "
... "automatiquement par Python. Il faut juste "
... "s'assurer de mettre des parenthèses autour "
... "afin d’autoriser les sauts de ligne")
>>> print(msg)
Les chaînes peuvent être séparées par des espaces et seront concaténées automatiquement par Python. Il faut juste s'assurer de mettre des parenthèses autour afin d’autoriser les sauts de ligne
répondu 18-Mai-2015 par Sam (4,974 points)
sélectionné 18-Mai-2015 par Laërte

Nyurf, trop rapide pour moi.

Remarque : il faut entourer de guillemets chaque ligne sinon on se fait insulter :

    a=("Les chaînes peuvent être séparées 
                                          ^
SyntaxError: EOL while scanning string literal

Je ne connaissais même pas : honte à moi !

+3 votes

ezpz

msg = ("Ce programme a été créé pour vous permettre de lancer une image iso sans avoir besoin de la graver.\n\n"
       "Le script lu par Grub a été créé par Arbiel.\n"
       "La fenêtre que vous avez sous les yeux a été codée par Laërte\n\n"
       "Ce programme nécessite que vous utilisiez Grub comme chargeur d'amorçage. "
       "Si ce n'est pas le cas, consultez la liste des paquets fournis par votre distribution pour l'installer. "
       "Sans Grub, ce programme n'est d'aucune utilité.")
répondu 18-Mai-2015 par Arza (726 points)
...