Back
Close

Les chaînes de caractères en Python

lajus-teach
5,381 views
Previous: Bonjour à tous

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 boucle for, teste l'appartenance.
  • Itération: le mot-clé in, à l'intérieur d'une boucle for, 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):

Que vaut a + b ?
Que vaut a[1] ?
Que vaut b[1:4] ?

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):

  1. On n'a plus besoin de manipuler la chaîne de caractère dans sa globalité,
  2. 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():

En tout, combien de fois faut-il appeler la méthode replace() pour que swapcase() fonctionne ?

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é.


Remettre dans le bon ordre.
Create your playground on Tech.io
This playground was created on Tech.io, our hands-on, knowledge-sharing platform for developers.
Go to tech.io