Concepts de base des chaînes dans Python

Effectué

Bien que les chaînes semblent simples et faciles dans Python, les règles de chaîne sont assez complexes. Vous devez bien connaître les règles pour anticiper le comportement des chaînes quand vous modifiez des valeurs ou que vous mettez en forme du texte.

Chaîne simple

Dans notre exemple pour cette unité, un seul fait associé à la Lune est attribué à une variable, comme ceci :

fact = "The Moon has no atmosphere."
print(fact)

La sortie indique que le texte a été affecté à la variable : The Moon has no atmosphere.

Immuabilité des chaînes

Dans Python, les chaînes sont immuables. Autrement dit, elles ne peuvent pas changer. Cette propriété du type de chaîne peut être surprenante, car Python ne donnent pas d’erreurs quand vous modifiez les chaînes.

Vous devez ajouter un autre fait (phrase) au fait unique qui est affecté à une variable. Il semble que l’ajout du deuxième fait modifie la variable, comme dans l’exemple suivant :

fact = "The Moon has no atmosphere."
fact + "No sound can be heard on the Moon."

Vous pouvez vous attendre à ce que la sortie soit : The Moon has no atmosphere.No sound can be heard on the Moon.

Même s’il peut sembler que nous avons modifié la variable fact, une vérification rapide de la valeur révèle que la valeur d’origine est inchangée :

fact = "The Moon has no atmosphere."
fact + "No sound can be heard on the Moon."
print(fact)

Sortie : The Moon has no atmosphere.

L’astuce consiste à utiliser une valeur de retour. Quand vous ajoutez des chaînes, Python ne modifie aucune chaîne, mais retourne une nouvelle chaîne comme résultat. Pour conserver ce nouveau résultat, attribuez-le à une nouvelle variable :

fact = "The Moon has no atmosphere."
two_facts = fact + "No sound can be heard on the Moon."
print(two_facts)

Sortie : The Moon has no atmosphere.No sound can be heard on the Moon.

Les opérations sur les chaînes produisent toujours de nouvelles chaînes.

À propos de l’utilisation des guillemets

Vous pouvez placer les chaînes Python entre des guillemets simples, doubles ou triples. Même si vous pouvez les utiliser de manière interchangeable, une bonne pratique est d’utiliser le même type dans tout le projet. Par exemple, la chaîne suivante utilise des guillemets doubles :

moon_radius = "The Moon has a radius of 1,080 miles."

Toutefois, quand une chaîne contient des mots, des chiffres ou des caractères spéciaux (une sous-chaîne) qui sont également placés entre guillemets, vous devez utiliser un style différent. Par exemple, si une sous-chaîne utilise des guillemets doubles, mettez la chaîne entière entre guillemets simples, comme illustré ici :

'The "near side" is the part of the Moon that faces the Earth.'

De même, s’il y a des guillemets simples (ou une apostrophe, comme dans Moon’s dans l’exemple suivant) n’importe où dans la chaîne, placez la totalité de la chaîne entre guillemets doubles :

"We only see about 60% of the Moon's surface."

Si vous n’alternez pas les guillemets simples et doubles, l’interpréteur Python risque de lever une erreur de syntaxe, comme illustré ici :

'We only see about 60% of the Moon's surface.'
  File "<stdin>", line 1
    'We only see about 60% of the Moon's surface.'
                                       ^
SyntaxError: invalid syntax

Quand le texte a une combinaison de guillemets simples et doubles, vous pouvez utiliser des guillemets triples pour éviter tout problème avec l’interpréteur :

"""We only see about 60% of the Moon's surface, this is known as the "near side"."""

Texte multiligne

Il existe différentes façons de définir plusieurs lignes de texte dans une seule variable. Les méthodes les plus courantes sont les suivantes :

  • Utilisez un caractère de nouvelle ligne (\n).
  • Utilisez des guillemets triples (""").

Les caractères de nouvelle ligne répartissent le texte en plusieurs lignes quand vous imprimez la sortie :

multiline = "Facts about the Moon:\n There is no atmosphere.\n There is no sound."
print(multiline)
Facts about the Moon:
 There is no atmosphere.
 There is no sound.

Vous pouvez obtenir le même résultat en utilisant des guillemets triples :

multiline = """Facts about the Moon:
 There is no atmosphere. 
 There is no sound."""
print(multiline)