NSI · Première

Chaînes de caractères

Définir des variables textuelles, concaténer des chaînes, éviter les erreurs de types et utiliser la méthode str() ou les f-strings.

Chaînes de caractères

Notion de chaîne de caractères

On peut associer des noms à des suites de caractères que l'on appelle "chaîne de caractères".

Activité

Activité 8 : Création d'une chaîne

Saisissez le code suivant dans votre éditeur :

Python
1
ma_chaine = "Bonjour le monde !"

Exécutez-le puis tapez type(ma_chaine) dans votre console. Le type renvoyé est str (abréviation de *string* en anglais).

Le signe + et la concaténation

L'utilisation du signe + ne se limite pas à l'addition numérique. Il sert également pour la concaténation.

> Définition (Wikipédia) : > « Le terme concaténation, du latin *cum* (« avec ») et *catena* (« chaîne, liaison »), désigne l'action de mettre bout à bout au moins deux chaînes. »

Activité

Activité 9 : Concaténation simple

Quelle est la chaîne associée au nom mon_expression après l'exécution du programme ci-dessous ?

Python
1
2
3
a = "Hello"
b = "World"
mon_expression = a + b

Vérifiez votre réponse en exécutant le script et en tapant mon_expression dans la console.

Chaînes de caractères et variables

Il est tout à fait possible de concaténer des variables de type chaîne et des morceaux de texte fixes :

Activité

Activité 10 : Concaténation multiple

Observez et testez le code suivant :

Python
1
2
3
ma_chaine_1 = "Bonjour "
ma_chaine_2 = "le "
res = ma_chaine_1 + ma_chaine_2 + "monde!"

Les variables ma_chaine_1 et ma_chaine_2 étant de type texte, la concaténation s'effectue sans problème.

Le piège des types mixtes

Que se passe-t-il si l'on tente de concaténer du texte avec un nombre ?

Activité

Activité 11 : Erreur de type

Testez le code suivant :

Python
1
2
mon_nombre = 5
res = "Nombre de personnes : " + mon_nombre

Comme vous pouvez le constater, Python lève une erreur de type (TypeError). Il est interdit d'additionner un texte et un nombre directement.

Solutions pour combiner texte et nombres

Python propose deux grandes techniques pour résoudre ce problème :

1. La fonction str()

La fonction str(valeur) permet de convertir un nombre (ou un autre type) en chaîne de caractères.

Activité

Activité 12 : Conversion de type

Testez le code suivant :

Python
1
2
mon_nombre = 5
mon_nombre = str(mon_nombre)

Quel est le type de la valeur associée à mon_nombre après cette exécution ?

Activité

Activité 13 : Concaténation corrigée

Testez à présent le code suivant :

Python
1
2
mon_nombre = 5
res = "Nombre de personnes : " + str(mon_nombre)

La concaténation fonctionne désormais parfaitement car les deux éléments sont de type str.

2. Les f-strings (format strings)

Introduites depuis Python 3.5, les f-strings offrent une solution beaucoup plus lisible. On place un f devant les guillemets et on écrit les variables directement dans la chaîne de texte en les entourant d'accolades {}.

Activité

Activité 14 : Utilisation d'une f-string

Testez le code suivant :

Python
1
2
mon_nombre = 5
res = f"Nombre de personnes : {mon_nombre}"

Notez que le f doit précéder immédiatement le premier guillemet. Vous pouvez inclure autant de variables que vous le souhaitez dans les accolades.

Avez-vous compris ce chapitre ?

Cochez-le pour l'enregistrer dans votre progression d'apprentissage.