Notre tutoriel précédent sur le Python était une introduction au langage : les chaînes de caractères n'avaient pas précisemment été abordées, nous allons rectifier cette situation aujourd'hui.

Les différents exemples que nous allons aborder sont simples d'approche et permettent de réutiliser tout de suite les caractéristiques de Python qu'ils mettent en avant.

(Si vous ne savez pas comment tester ces exemples, reportez-vous au tutoriel indiqué ci-dessus)

Démonstration par l'exemple

Une chaîne de caractères peut se stocker de deux manières, avec des simples ou doubles quotes, nous allons voir comment utiliser à notre avantage cette caractéristique :

str1 = 'Bonjour'
ou
str1 = "Bonjour"


Dans les deux cas un "print str1" produit bien évidemment le même affichage.

Question classique maintenant : comment faire si la chaîne de caractères possède un caractère spécial ? Réponse :

str1 = 'Aujourd\'hui le temps est au beau fixe'
ou plus malin
str1 = "Aujourd'hui le temps est au beau fixe"


Afin d'éviter un disgracieux échappement, lorsque cela est possible, nous pouvons faire en sorte d'encadrer le chaîne de caractères par le type de quote non présent dans la chaîne.

Les échappements sont néanmoins une étape incontournable si vous souhaitez par exemple sauvegarder dans l'état que vous avez choisi la pagination d'une chaîne de caractères :

Je souhaite que mon texte
soit sauvegardé dans l'état,
     tous les espaces sont significatifs,
     comment faire ?

Afin de sauvegarder le texte ci-dessus dans l'état, deux façons de faire. La première :

str = "Je souhaite que mon texte\n\
soit sauvegardé dans l'état,\n\
     tous les espaces sont significatifs,\n\
     comment faire ?"
print str

... Provoque l'affichage suivant :

Je souhaite que mon texte
soit sauvegardé dans l'état,
     tous les espaces sont significatifs,
     comment faire ?

Le même résultat est obtenu avec :

str = """Je souhaite que mon texte
soit sauvegardé dans l'état,
     tous les espaces sont significatifs,
     comment faire ?"""
print str

D'autres séquences d'échappement existent, vous les trouverez au milieu de cette page.


Dans un autre registre la concaténation s'effectue elle aussi de manière simple :

str1 = "a"+"b"+"c"
print str1

... Affiche "abc". Si vous ne réutilisez pas par la suite la variable str1, il est possible de s'en passer :

print "a"+"b"+"c"
ou
print "a" "b" "c"

... provoquent le même affichage.

Si maintenant vous souhaitez séparer ces trois caractères avec un espace :

print "a", "b", "c"

... Affiche "a b c".

La répétition ne pose pas de problème non plus :

print "abc" * 3

... Affiche : "abcabcabc"


Comme dans d'autres langages, il est possible d'accéder de manière indexée à certains caractères, exemples :

str = "Langage : Python"
print str[2]
print str[0:2]
print str[:4]
print str[4:]

... Ce qui provoque l'affichage suivant :

n
La
Lang
age : Python

On considère la chaîne comme un tableau dont le premier indice est 0.
Avec "print str[0:2]" on provoque l'affichage de deux caractères en partant de str[0].
":4" ramène les quatre premiers caractères tandis que "4:" ramène tous les caractères à partir du cinquième.

print str[-3]

... Affiche le troisième caractère en partant de la fin de la chaîne, "h".

Outre la classique fonction "len" :

print len(str)

... qui affiche 16 avec l'exemple précédent, il également possible de déterminer facilement si un caractère est présent ou non dans la chaîne :

str = "Langage : Python"
print "x" in str

... Affiche "0" si le caractère "x" ne se trouve pas dans la chaîne étudiée, et "1" sinon.

Attention, bien qu'il soit possible d'accéder de manière indexée au contenu d'une chaîne, celle-ci n'en est pas pour autant modifiable.

D'autres fonctions du même type existent, citons par exemple :

print str[0].isupper()
print str[1].isupper()


Qui pour l'exemple précédent affiche "1" puis "0" selon si le caractère étudié est en majuscule ou pas.


La liste de ces fonctions n'est pas exhaustive, nous vous renvoyons au manuel de Python si vous souhaitez en implémenter davantage.