
Cet article décrit comment gérer les chaînes, y compris les sauts de ligne (sauts de ligne, nouvelles lignes) en Python.
- Créer une chaîne contenant des sauts de ligne
- Code de saut de ligne n(LF), rn(CR + LF)
- Guillemet triple »’ ou « » »
- Avec retrait
- Concaténer une liste de chaînes sur de nouvelles lignes
- Divisez une chaîne en une liste par des sauts de ligne :
splitlines() - Supprimer ou remplacer les sauts de ligne
- Sortie avec print() sans nouvelle ligne de fin
Créer une chaîne contenant des sauts de ligne
Code de saut de ligne n(LF), rn(CR + LF)
L’insertion d’un code de retour à la ligne n, rn dans une chaîne entraînera un saut de ligne à cet emplacement.
s = 'Line1nLine2nLine3'
print(s)
# Line1
# Line2
# Line3
s = 'Line1rnLine2rnLine3'
print(s)
# Line1
# Line2
# Line3
Sous Unix, y compris Mac, n (LF) est souvent utilisé, et sous Windows, rn (CR + LF) est souvent utilisé comme code de retour à la ligne. Certains éditeurs de texte vous permettent de sélectionner un code de retour à la ligne.
Guillemet triple »’, « » »
Vous pouvez écrire une chaîne incluant des sauts de ligne avec des guillemets triples »’ ou « » ».
s = '''Line1
Line2
Line3'''
print(s)
# Line1
# Line2
# Line3
Avec retrait
Si vous utilisez des guillemets triples et un retrait, comme indiqué ci-dessous, des espaces inutiles sont insérés.
s = '''
Line1
Line2
Line3
'''
print(s)
#
# Line1
# Line2
# Line3
#
En encadrant chaque ligne entre » ou « », en ajoutant un saut de ligne n à la fin et en utilisant une barre oblique inverse, vous pouvez écrire comme suit :
s = 'Line1n'
'Line2n'
'Line3'
print(s)
# Line1
# Line2
# Line3
Il utilise un mécanisme dans lequel des littéraux de chaîne consécutifs sont concaténés. Voir l’article suivant pour plus de détails.
Si vous souhaitez ajouter une indentation dans la chaîne, ajoutez un espace à la chaîne sur chaque ligne.
s = 'Line1n'
' Line2n'
' Line3'
print(s)
# Line1
# Line2
# Line3
Comme vous pouvez librement couper les lignes entre parenthèses (), vous pouvez également écrire comme suit en utilisant des parenthèses () sans utiliser de barres obliques inverses.
s = ('Line1n'
'Line2n'
'Line3')
print(s)
# Line1
# Line2
# Line3
s = ('Line1n'
' Line2n'
' Line3')
print(s)
# Line1
# Line2
# Line3
Si vous souhaitez simplement aligner le début d’une ligne, vous pouvez ajouter une barre oblique inverse à la première ligne de guillemets triples.
s = '''
Line1
Line2
Line3'''
print(s)
# Line1
# Line2
# Line3
s = '''
Line1
Line2
Line3'''
print(s)
# Line1
# Line2
# Line3
Concaténer une liste de chaînes sur de nouvelles lignes
Vous pouvez concaténer une liste de chaînes en une seule chaîne avec la méthode de chaîne, join().
En appelant join() à partir d’un code de nouvelle ligne n ou rn, chaque élément est concaténé sur de nouvelles lignes.
l = ['Line1', 'Line2', 'Line3']
s_n = 'n'.join(l)
print(s_n)
# Line1
# Line2
# Line3
print(repr(s_n))
# 'Line1nLine2nLine3'
s_rn = 'rn'.join(l)
print(s_rn)
# Line1
# Line2
# Line3
print(repr(s_rn))
# 'Line1rnLine2rnLine3'
Comme dans l’exemple ci-dessus, vous pouvez vérifier la chaîne avec des codes de saut de ligne intacts avec la fonction intégrée repr().
Divisez une chaîne en une liste par des sauts de ligne :splitlines()
Vous pouvez diviser une chaîne par des sauts de ligne dans une liste avec la méthode de chaîne, splitlines().
s = 'Line1nLine2rnLine3'
print(s.splitlines())
# ['Line1', 'Line2', 'Line3']
En plus de n et rn, il est également divisé par v (tabulation de lignes) ou f (saut de page), etc.
Voir aussi l’article suivant pour plus d’informations sur splitlines().
Supprimer ou remplacer les sauts de ligne
Avec splitlines() et join(), vous pouvez supprimer les codes de nouvelle ligne d’une chaîne ou les remplacer par une autre chaîne.
s = 'Line1nLine2rnLine3'
print(''.join(s.splitlines()))
# Line1Line2Line3
print(' '.join(s.splitlines()))
# Line1 Line2 Line3
print(','.join(s.splitlines()))
# Line1,Line2,Line3
Il est également possible de modifier le code de saut de ligne immédiatement. Même si le code de nouvelle ligne est mixte ou inconnu, vous pouvez le diviser avec splitlines() puis les concaténer avec le code souhaité.
s_n = 'n'.join(s.splitlines())
print(s_n)
# Line1
# Line2
# Line3
print(repr(s_n))
# 'Line1nLine2nLine3'
Étant donné que splitlines() divise à la fois n (LF) et rn (CR + LF) comme mentionné ci-dessus, vous n’avez pas à vous soucier du code de saut de ligne utilisé dans la chaîne.
Vous pouvez également remplacer le code de saut de ligne replace().
s = 'Line1nLine2nLine3'
print(s.replace('n', ''))
# Line1Line2Line3
print(s.replace('n', ','))
# Line1,Line2,Line3
Cependant, notez que cela ne fonctionnera pas s’il contient un code de nouvelle ligne différent de celui attendu.
s = 'Line1nLine2rnLine3'
s_error = s.replace('n', ',')
print(s_error)
# ,Line3Line2
print(repr(s_error))
# 'Line1,Line2r,Line3'
s_error = s.replace('rn', ',')
print(s_error)
# Line1
# Line2,Line3
print(repr(s_error))
# 'Line1nLine2,Line3'
Vous pouvez répéter replace() pour remplacer plusieurs codes de nouvelle ligne, mais comme rn contient n, cela ne fonctionne pas bien si vous le faites dans le mauvais ordre. Comme mentionné ci-dessus, l’utilisation de splitlines() et join() est sûre car vous n’avez pas à vous soucier des codes de saut de ligne.
s = 'Line1nLine2rnLine3'
print(s.replace('rn', ',').replace('n', ','))
# Line1,Line2,Line3
s_error = s.replace('n', ',').replace('rn', ',')
print(s_error)
# ,Line3Line2
print(repr(s_error))
# 'Line1,Line2r,Line3'
print(','.join(s.splitlines()))
# Line1,Line2,Line3
Vous pouvez utiliser rstrip() pour supprimer le code de fin de ligne.
s = 'aaan'
print(s + 'bbb')
# aaa
# bbb
print(s.rstrip() + 'bbb')
# aaabbb
Sortie avec print() sans nouvelle ligne de fin
Par défaut, print() ajoute une nouvelle ligne à la fin. Par conséquent, si vous exécutez print() en continu, chaque résultat de sortie sera affiché avec un saut de ligne.
print('a')
print('b')
print('c')
# a
# b
# c
En effet, la valeur par défaut de l’argument end of print(), qui spécifie la chaîne de caractères à ajouter à la fin, est ‘n’.
Si la chaîne vide » est spécifiée à la fin, un saut de ligne ne se produira pas à la fin.
print('a', end='')
print('b', end='')
print('c', end='')
# abc
N’importe quelle chaîne peut être spécifiée dans end.
print('a', end='-')
print('b', end='-')
print('c')
# a-b-c
Toutefois, si vous souhaitez concaténer les chaînes de caractères et la sortie, il est plus simple de concaténer les chaînes de caractères d’origine. Voir l’article suivant.
