Les chaînes de caractères en Python
Open Source Your Knowledge, Become a Contributor
Technology knowledge has to be shared and made accessible for free. Join the movement.
Les chaînes de caractères
Une chaîne de caractères est un objet Python pouvant contenir 0, 1 ou plusieurs caractères.
En Python, toute valeur comprise entre deux guillemets doubles "
ou deux guillemets simples '
est considérée comme du texte:
Ou toute valeur comprise entre deux triple guillemets doubles "
ou deux triple guillemets simples '
:
Opérations sur les chaînes de caractères
Opérations sur les listes:
Les chaînes de caractères sont des listes de caractères, on peut donc les manipuler comme telles:
- Taille: à l'aide de la fonction
len()
. - Concaténation: à l'aide de l'opération
+
. - Appartenance: le mot-clé
in
, à l'extérieur d'une bouclefor
, teste l'appartenance. - Itération: le mot-clé
in
, à l'intérieur d'une bouclefor
, permet d'itérer sur les lettres d'une chaîne de caractère. - Accès à la ième lettre à l'aide de l'opérateur
[i]
: - Sous-chaîne de la ième lettre (incluse) à la jième lettre (excluse) à l'aide de l'opération
[i:j]
.
QCM
a = "hello"
b = 'world'
Cochez la/les bonne(s) réponse(s):
Quelques méthodes
Une méthode est une fonction qu'on peut appliquer à un objet Python d'un certain type. En Python, pour chaque type d'objet, un ensemble de méthodes permettant de manipuler ce type d'objet est déjà prédéfini.
La syntaxe d'appel à une méthode est légèrement différente de la syntaxe d'appel à une fonction. Elle a la forme: objet.methode(arguments)
Par exemple, Python prédéfinit un ensemble de méthodes permettant de manipuler spécifiquement les chaînes de caractères. Une liste exhaustive de ces méthodes peut être retrouvée ici.
On en présente quelque unes:
- La méthode
upper()
(resp.lower()
) renvoie la chaîne mise en majuscules (resp. minuscules):
- La méthode
replace(from, to)
prend deux arguments et remplace dans la chaîne objet, chaque occurence de la chaîne passée en premier argument, par la chaîne passée en second:
Construction de chaînes
En Python, une chaîne de caractères ne peut pas être modifiée (immutable):
Les opérations sur les listes ne modifient pas la chaîne mais renvoie une nouvelle chaîne:
Les méthodes ne modifient pas la chaîne mais renvoie une nouvelle chaîne:
Donc comment faire pour transformer une chaîne de caractères ?
Méthode 1: en manipulant la chaîne de caractères.
Cette approche fonctionne pour les manipulations simples.
Par exemple pour construire la chaîne contenant les n
premières lettres de l'alphabet, on peut construire la chaîne contenant tout l'alphabet et
renvoyer les n premiers caractères:
Méthode 2: en construisant, caractère par caractère la chaîne transformée.
Pour les manipulations plus complexes il est souvent plus facile de travailler caractère par caractère.
Sur le même exemple:
En utilisant cette méthode (qui est très générale):
- On n'a plus besoin de manipuler la chaîne de caractère dans sa globalité,
- On a juste à transformer chaque caractère indépendamment les uns des autres.
Exercice d'application
On demande à Bob d'écrire la fonction swapcase()
prenant en argument une chaîne de caractère et inversant la casse de chaque caractère de cette chaîne.
Cela signifie que cette fonction devra renvoyer la chaîne de caractères avec toutes les minuscules mises en majuscules et toutes les majuscules mises en minuscules (la ponctuation restant inchangée).
Méthode 1: en manipulant la chaîne de caractère.
Bob vous propose différentes solutions que vous allez étudier:
Proposition 1: en utilisant les méthodes upper()
et lower()
:
Tester cette fonction. Quel est le problème ? Expliquez
Proposition 2.
Tester cette fonction. Quel est le problème ? Expliquez
Proposition 3: en utilisant la méthode replace()
:
Méthode 2: en construisant, caractère par caractère la chaîne transformée.
Bob décide finalement de transformer la chaîne, caractère par caractère. Il arrive à trouver une solution.
Cette solution utilise notamment les méthodes isupper()
et islower()
. Vous pouvez vous référer à la documentation
pour comprendre le fonctionnement de ces méthodes.
Néanmoins, lors de sa soumission, les lignes du programme ont étaient mélangées. À vous de les remettre dans le bon ordre.
Explication sur l'interface exercices: Dans cette interface exercice, vous devez juste définir correctement la fonction swapcase().
Important, lorsque vous appuyer sur RUN, cela lance un autre script Python que j'ai créé, dont vous n'avez pas accès, qui va effectuer des tests unitaires sur votre fonction.
Si tous les tests unitaires que j'ai créé fonctionnent, l'interface vous indiquera SUCCESS. Sinon, elle vous renverra un message d'erreur avec éventuellement une description du test unitaire ayant échoué.