Découpage de chaînes

8.2 Découpage de chaînes

Objectifs d'apprentissage

À la fin de cette section, vous devriez être en mesure de :

  • Utiliser l'indexation de chaînes pour accéder aux caractères d'une chaîne.
  • Utiliser le découpage de chaînes pour obtenir une sous-chaîne à partir d'une chaîne.
  • Identifier les caractéristiques d'immuabilité des chaînes.

Indexation de chaînes

Une chaîne de caractères est un type de séquence. Une chaîne est constituée d'une séquence de caractères indexés de gauche à droite, en commençant à 0. Pour une variable chaîne s, le caractère le plus à gauche a pour indice 0 et le caractère le plus à droite a pour indice len(s) - 1. Ex. : La longueur de la chaîne "Cloud" est 5, son dernier indice est donc 4.

Une indexation négative peut également être utilisée pour faire référence aux caractères de droite à gauche en partant de -1. Pour une variable chaîne s, le caractère le plus à gauche a pour indice -len(s) et le caractère le plus à droite a pour indice -1. Ex. : La longueur de la chaîne "flower" est 6, donc l'indice du premier caractère selon l'indexation négative est -6.

Faites le point

Indexation de chaînes

Concepts en pratique

Accéder aux caractères d'une chaîne à l'aide de l'indexation

1.
Quel caractère se trouve à l'indice 1 dans la chaîne "hello" ?
  1. "h"
  2. "e"
  3. "o"
2.
Quel est le caractère situé à l'indice -2 dans la chaîne "Blue" ?
  1. "e"
  2. "u"
  3. "l"
3.
Quelle est la sortie du code suivant ?
word = "chance"
print(word[-1] == word[5])
  1. True
  2. False

Découpage de chaînes

Le découpage de chaînes (string slicing) est utilisé lorsqu'un programmeur doit accéder à une séquence de caractères. Pour cela, un opérateur de découpage de chaîne peut être employé. Lorsque [a:b] est utilisé avec le nom d'une variable chaîne, une séquence de caractères commençant à l'indice a (inclus) jusqu'à l'indice b (exclu) est renvoyée. a et b sont tous deux facultatifs. Si a ou b ne sont pas fournis, leurs valeurs par défaut sont respectivement 0 et len(string).

Exemple 8.2

Obtenir les minutes

Considérons une valeur horaire donnée sous la forme "hh:mm", où "hh" représente l'heure et "mm" représente les minutes. Pour extraire uniquement la partie correspondant aux minutes de la chaîne, on peut utiliser le code suivant :

    time_string = "13:46"
    minutes = time_string[3:5]
    print(minutes)

La sortie du code ci-dessus est :

    46

Exemple 8.3

Obtenir l'heure

Considérons une valeur horaire donnée sous la forme "hh:mm", où "hh" représente l'heure et "mm" représente les minutes. Pour extraire uniquement la partie correspondant à l'heure de la chaîne, on peut utiliser le code suivant :

    time_string = "14:50"
    hour = time_string[:2]
    print(hour)

La sortie du code ci-dessus est :

    14

Concepts en pratique

Obtenir une sous-chaîne à l'aide du découpage de chaînes

4.
Quelle est la sortie du code suivant ?
a_string = "Hello world"
print(a_string[2:4])
  1. "el"
  2. "ll"
  3. "llo"
5.
Quelle est la sortie du code suivant ?
location = "classroom"
print(location[-3:-1])
  1. "ro"
  2. "oo"
  3. "oom"
6.
Quelle est la sortie du code suivant ?
greeting = "hi Leila"
name = greeting[3:]
  1. " Leila"
  2. "Leila"
  3. "ila"

Immuabilité des chaînes

Les objets de type chaîne sont immuables (immutable), ce qui signifie qu'ils ne peuvent être ni modifiés ni altérés une fois créés. Une fois qu'un objet chaîne est créé, son contenu ne peut pas être modifié en altérant directement des caractères individuels ou des éléments de la chaîne. À la place, pour apporter des modifications à une chaîne, un nouvel objet chaîne comportant les changements souhaités est créé, laissant la chaîne originale inchangée.

Faites le point

Les chaînes sont immuables

Concepts en pratique

Modifier le contenu d'une chaîne

7.
Quelle est la méthode correcte pour remplacer le premier caractère d'une chaîne par le caractère « * » dans une nouvelle chaîne ?
  1. x = "string"
    x[0] = "*"
    
  2. x = "string"
    x = "*" + x[1:]
    
  3. x = "string"
    x = "*" + x
    
8.
Quel type d'erreur résultera du code suivant ?
string_variable = "example"
string_variable[-1] = ""
  1. TypeError
  2. IndexError
  3. NameError
9.
Quelle est la sortie du code suivant ?
str = "morning"
str = str[1]
print(str)
  1. TypeError
  2. m
  3. o

À vous d'essayer

Modifier le message de salutation

Étant donné la chaîne "Hello my fellow classmates" contenant un message de salutation, affichez le premier mot en extrayant le début de la chaîne jusqu'au 5e caractère (inclus). Remplacez le premier mot de la chaîne par "Hi" au lieu de "hello" et affichez à nouveau le message de salutation.

À vous d'essayer

Modifier la chaîne à des emplacements spécifiés

Étant donné une variable chaîne, string_variable, et une liste d'indices, supprimez les caractères situés aux indices spécifiés et affichez la chaîne résultante.

    Input:
    string_variable = "great"
    indices = [0, 1]
    Prints: 
    eat