logo

Les chaînes de caractères

Définition

Pour définir une variable qui contient une chaîne de caractères il faut encadrer le texte par des apostrophes (single quote) ou des guillemets (double quote) (ainsi on peut écrire un chaine de caractères avec des guillemets) :

Les deux déclarations suivantes sont équivalentes :

maChaine='mon message';
maChaine="mon message";

Remarque

On peut transformer des nombres en chaines de caractères avec str :
a=str(12)

Accès aux caractères de la chaîne

Dans une chaîne de caractères les positions des caractères sont numérotées en commençant à 0. Ainsi le premier caractère est en position 0, le second en position 1, etc... et -1 pour la dernière.

Dans un programme, il est possible d'accéder à chaque caractère de la chaîne en indiquant sa position comme dans l'exemple suivant :

nom=input("Entrez votre prenom")
print "la premiere lettre de votre prenom est ",nom[0]
print "la derniere lettre de votre prenom est ",nom[-1]

 

Comment cela fonctionne-t-il ?

La première lettre de la chaîne de caractères est numérotée 0. Pour y accéder nous écrivons : nom[0].

De façon générale, pour accéder au caractère qui figure à une position donnée, il faut écrire le nom de la variable qui contient la chaîne de caractères suivi du numéro de la position entre crochets.

Nombre de caractères dans une chaîne

Une chaîne de caractères est un objet du langage Python, c'est à dire qu'en plus de stocker les caractères, une chaîne de caractères contient des propriétés et des méthodes.

Par exemple, il existe une propriété qui indique le nombre de caractères de la chaîne, cette propriété s'appelle len.

Observez comment nous utilisons la propriété len dans le programme suivant :

nom=input("Entrez votre prenom")
print "ton prenom a ",len(nom)," caracteres"

 

Comment cela fonctionne-t-il ?

Pour accéder à la méthode len de la chaîne de caractères nous écrivons : leng(nom)

Notez bien que len(nom) est un nombre.

Parcourir une chaine de caractères et l'instruction for

L'instruction for permet de parcourir la chaine de caractères.

Exemple d'un programme qui demande à l'utilisateur de saisir son prénom et qui affiche toutes les lettres l'une en dessous de l'autre.

nom=input("Entrez votre prenom")
for l in nom:
	print l

 

Repérer une chaine de caractères et l'instruction in

L'instruction in permet de repérer un caractère dans une chaine de caractères et répond par un booléen (True ou False)

Exemple d'un programme qui demande à l'utilisateur de saisir son prénom et qui teste si la lettre "u" appartient au prénom.

nom=input("Entrez votre prenom")
if "u" in nom:
	print("u est dans ",nom)
else:
	print("u n'est pas dans",nom) 

 

On peut aussi utiliser l'intruction not in pour tester qu'un caractère n'est pas dans une chaine de caractères.

Méthodes de l'objet String

Dans le vocabulaire du programmeur JavaScript, une chaîne de caractères est un objet String et comme nous l'avons indiqué plus haut, il contient plusieurs méthodes.

Ces méthodes permettent pour la plupart d'obtenir de nouvelles chaînes de caractères construites à partir de la chaîne initiale.

Supposons que maChaine soit une variable de type chaîne de caractères, le tableau ci-dessous montre quelques méthodes :

Instruction Signification
maChaine.lower()donne la chaîne avec toutes les lettres en minuscule
maChaine.upper()donne la chaîne avec toutes les lettres en majuscule
maChaine.find("toto")donne la position de la première occurrence de "toto"
maChaine.count("toto")donne le nombre de fois que la chaîne contient l'occurrence de "toto"
maChaine.replace("toto","tutu")remplace toutes les occurrences de "toto" par "tutu"

Exercice

Testez les différentes méthodes indiquées dans le tableau ci-dessus.

chaine="ceci est une chaine de caracteres que tu peux remplacer"
print chaine.upper()
print chaine.count("e")
print chaine.replace("peux","dois")

 

Concaténation

La concaténation de deux (ou plusieurs) chaînes de caractères consiste tout simplement à les mettre bout à bout.

Cette action correspond à l'addition des chaînes comme dans l'exemple de programme ci-dessous :

prenom=input("Entrez votre prenom")
nom=input("Entrez votre nom")
phrase="bonjour "+prenom+" "+nom+" !"
print phrase

 

Comment cela fonctionne-t-il ?

Pour afficher le message, plutôt que d'écrire plusieurs instructions print successives, nous utilisons l'opération d'addition sur les chaînes de caractères : les différents éléments sont ainsi mis bout à bout.

Notez bien la présence d'espaces pour éviter d'avoir des mots collés.

Exercices

A vous de jouer !

Utiliser la console pour écrire votre code :

Voici un « squelette de programme » :

chaine=""
n=int(input("Nombre de repititions"))

# complete ici

print chaine

Ce programme demande la saisie d'un nombre, la chaîne de caractères entrée par l'utilisateur est convertie en nombre entier en utilisant l'instruction int. C'est la variable n qui reçoit ce nombre.

Compléter le programme pour qu'il affiche le mot « ISN » le nombre de fois spécifié par l'utilisateur. Vous n'avez pas le droit d'utiliser l'instuction print dans la partie à compléter, vous devez faire en sorte que la variable chaine contienne le texte final à afficher.

Voir une solution