English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutoriel de base Python

Contrôle des flux Python

Fonctions en Python

Types de données en Python

Opérations sur les fichiers Python

Objets et classes Python

Dates et heures Python

Connaissances avancées Python

Manuel de référence Python

Chains de caractères (String) en Python

Dans ce tutoriel, vous apprendrez à créer, formater, modifier et supprimer des chaînes de caractères en Python. De plus, vous découvrirez diverses opérations et fonctions sur les chaînes de caractères.

Qu'est-ce que les chaînes de caractères en Python ?

Les chaînes de caractères sont une séquence de caractères.

Un caractère est simplement un symbole. Par exemple, l'anglais a26caractères.

Les ordinateurs ne traitent pas les caractères, ils traitent des nombres (binaire). Même si vous voyez peut-être des caractères à l'écran, en interne, ils sont stockés et manipulés comme des 0 et des1de combinaison.

Cette conversion de caractères en nombres est appelée encodage, et le processus inverse est appelé décodage. ASCII et Unicode sont quelques-unes des encodages courants.

En Python, les chaînes de caractères sont une séquence de caractères Unicode. L'introduction de Unicode inclut chaque caractère de toutes les langues et assure un encodage uniforme. Vous pouvez en savoir plus iciEn savoir plus sur Unicode.

Comment créer des chaînes de caractères en Python ?

On peut créer des chaînes de caractères en encadrant des caractères entre des guillemets simples ou doubles. Python peut même utiliser des guillemets triples, mais ils sont généralement utilisés pour représenter des chaînes de caractères multilignes et des chaînes de caractères de documentation.

# Ce sont tous équivalents
my_string = 'Hello'
print(my_string)
my_string = "Hello"
print(my_string)
my_string = '''Hello'''
print(my_string)
# Les chaînes de caractères encadrées par trois guillemets peuvent s'étendre sur plusieurs lignes
my_string = "Hello, bienvenue dans
           le monde de Python"
print(my_string)

Lorsque ce programme est exécuté, la sortie est :

Hello
Hello
Hello
Hello, bienvenue dans
           le monde de Python

Comment accéder aux caractères d'une chaîne ?

Nous pouvons accéder à un caractère individuel à l'aide de l'index et à une série de caractères à l'aide de tranches. L'index commence à 0. Tenter d'accéder à un caractère en dehors de la gamme de l'index déclenche une erreur IndexError. L'index doit être un entier. Nous ne pouvons pas utiliser de float ou d'autres types, ce qui entraînerait une erreur TypeError.

Python permet des indices négatifs pour ses séquences.

index-1représente le dernier élément-2représente le deuxième élément en sens inverse, et ainsi de suite. Nous pouvons utiliser l'opérateur de coupe (deux points) pour accéder à une série d'éléments dans une chaîne.

str = 'oldtoolbag.com
print('str = ', str)
# Le premier caractère
print('str[0] = ', str[0])
# Le dernier caractère
print('str[-1] = '', str[-1)
# La coupe du deuxième au cinquième caractère
print('str[1:5] = '', str[1:5)
# La coupe commence à partir du6à l'inverse du deuxième2un caractère
print('str[5:-2] = '', str[5:-2)

Résultat de la sortie :

str = ''3codebox.com
str[0] = ''
str[-1] = ''
str[1:5] = ''
str[5:-2] = ''

Si vous essayez d'accéder à un index en dehors de la plage ou d'utiliser un nombre décimal, une erreur se produira.

# L'index doit être dans la plage
>>> my_string[15]  
...
IndexError: l'index de chaîne est en dehors de la plage
# Les indices doivent être des entiers
>>> my_string[1.5] 
...
TypeError: les indices de chaîne doivent être des entiers

En considérant que les indices sont situés entre les éléments, la coupe peut être visualisée de la meilleure manière possible, comme ci-dessous.

Pour accéder à une plage, il faut utiliser des indices, qui extraient une partie de la chaîne.

Comment modifier ou supprimer une chaîne de caractères ?

Les chaînes de caractères sont immuables. Cela signifie que les éléments de la chaîne de caractères ne peuvent pas être modifiés une fois assignés. Nous pouvons simplement réaffecter différentes chaînes de caractères au même nom.

>>> my_string = 'oldtoolbag.com
>>> my_string[5] = 'a'
...
TypeError: l'objet 'str' ne prend pas en charge l'affectation d'éléments
>>> my_string = 'Python'
>>> my_string
'Python'

Nous ne pouvons pas supprimer ou supprimer de caractères dans une chaîne de caractères. Cependant, nous pouvons supprimer complètement une chaîne de caractères en utilisant la clause del.

>>> del my_string[1]
...
TypeError: l'objet 'str' ne prend pas en charge la suppression d'éléments
>>> del my_string
>>> my_string
...
NameError: le nom 'my_string' n'est pas défini

Opérations sur les chaînes de caractères en Python

Les chaînes de caractères peuvent effectuer de nombreuses opérations, ce qui en faitEn PythonLe plus couramment utiliséUn des types de données.

Concaténation de deux ou plusieurs chaînes de caractères

Joindre deux ou plusieurs chaînes en une seule chaîne est appelé concaténation.

+ Les opérateurs exécutent des opérations de concaténation en Python. Écrire deux chaînes de texte ensemble, ou les joindre ensemble.

* Les opérateurs peuvent être utilisés pour répéter une chaîne un certain nombre de fois.

str1 ='Hello'
str2 ='World!"
# using +
print('str1 + str2 =, str1 + str2)
# using *
print('str1 * 3 =, str1 * 3)

Écrire deux chaînes de texte ensemble, cela fonctionnera également comme+Les opérateurs peuvent les joindre ensemble.

Si vous souhaitez joindre des chaînes sur différentes lignes, vous pouvez utiliser des parenthèses.

>>> # Concaténation de deux chaînes de texte ensemble
>>> 'Hello ''World!'
'Hello World!"
>>> # Utilisation des parenthèses
>>> s = ('Hello '
...          'World')
>>> s
'Hello World'

Itération sur une chaîne

UtilisationBoucle forNous pouvons itérer sur une chaîne. Voici un exemple de calcul du nombre de 'l' dans une chaîne.

count = 0
for letter in 'Hello World':
    if(letter == 'l'):
        count += 1
print(count, 'letters found')

Test de l'appartenance de la chaîne

Nous pouvons utiliser le mot-clé in pour tester si un sous-chaîne existe dans une chaîne.

>>> 'a' in 'program'
True
>>> 'at' not in 'battle'
False

Utilisation des fonctions intégrées de Python

Il est possible d'utiliser diverses fonctions intégrées aux séquences et aux chaînes.

Certaines fonctions intégrées couramment utilisées sont enumerate() et len(). La fonction enumerate() a pour effet de : renvoyer un objet d'enumeration. Il contient sous forme de paires l'index et la valeur de tous les éléments de la chaîne. Cela est très utile pour l'itération.

De même, len() renvoie la longueur de la chaîne (nombre de caractères).

str = 'cold'
# enumerate()
list_enumerate = list(enumerate(str))
print('list(enumerate(str) = ', list_enumerate)
# Nombre de caractères
print('len(str) = ', len(str))

Format de chaîne Python

séquence d'échappement

Si nous voulons imprimer un texte-Il a dit : "Qu'y a-t-il ?"-Nous ne pouvons pas utiliser les guillemets simples ou doubles. Cela entraînera une erreur de syntaxe, le texte en lui-même contient des guillemets simples et doubles.

>>> print("Il a dit, "Qu'y a-t-il?"")
...
SyntaxError: syntaxe invalide
>>> print('Il a dit, "Qu'y a-t-il?"')
...
SyntaxError: syntaxe invalide

Une solution pour ce problème consiste à utiliser trois guillemets. De plus, nous pouvons utiliser des séquences d'échappement.

Les séquences d'échappement commencent par un backslash et sont interprétées différemment. Si nous utilisons des guillemets simples pour représenter une chaîne, nous devons échapper à tous les guillemets simples à l'intérieur de la chaîne. C'est aussi le cas pour les guillemets doubles. Voici la manière de représenter le texte ci-dessus.

# Utilisation de trois guillemets simples
print('''Il a dit, "Qu'y a-t-il?"''')
# Échappement des guillemets simples
print('Il a dit, "Qu'y a-t-il?"')
# Échappement des guillemets doubles
print("Il a dit, \"Qu'y a-t-il?\"")

Voici la liste de toutes les séquences d'échappement prises en charge par Python.

séquence d'échappement en Python
séquence d'échappementdescription
\newlinela barre oblique inversée et le retour à la ligne sont ignorés
\\barre oblique inversée
\'guillemets simples
\"guillemets doubles
\asonnerie ASCII
\bbouton d'effacement ASCII
\fsaut de page ASCII
\nsaut de ligne ASCII
\rretour chariot ASCII
\ttabulation horizontale ASCII
\vtabulation verticale ASCII
\ooode caractères avec une valeur octale
\xHHde caractères avec une valeur hexadécimale HH

Voici quelques exemples

>>> print("C:\\Python32\\Lib)
C:\\Python32\Lib
>>> print("C'est imprimé\nsur deux lignes")
C'est imprimé
sur deux lignes
>>> print("C'est là \x48\x45\x58 représentation)
C'est une représentation HEX

Les chaînes brutes ignorent les séquences d'échappement

Parfois, nous pourrions vouloir ignorer les séquences d'échappement dans une chaîne de caractères. Pour cela, nous pouvons les placer devant la chaîne en utilisant r ou R. Cela signifie qu'il s'agit d'une chaîne brute et que toutes les séquences d'échappement seront ignorées.

>>> print("C'est là \x61 bon exemple)
C'est une
bon exemple
>>> print(r"C'est là \x61 bon exemple)
C'est là \x61 bon exemple

Formater les chaînes en utilisant la méthode format()

La méthode format() utilisée avec l'objet string est très polyvalente et très puissante pour le formatage des chaînes. La chaîne de format contient des accolades {} comme placeholders ou champs à remplacer.

Nous pouvons utiliser des paramètres positionnels ou de mots-clés pour spécifier l'ordre.

# Ordre par défaut (implicite)
default_order = "{}, {} et {}".format('John', 'Bill', 'Sean')
print('\n--- Ordre Par Défaut ---')
print(default_order)
# Tri utilisant les paramètres positionnels
positional_order = "{1, {0} et {2}".format('John', 'Bill', 'Sean')
print('\n--- Ordre Positionnel ---')
print(positional_order)
# Tri utilisant les paramètres de mots-clés
keyword_order = "{s}, {b} et {j}".format(j='John', b='Bill', s='Sean')
print('\n--- Ordre des Mots-clés ---')
print(keyword_order)

La méthode format() peut avoir des spécifications de format optionnelles. Elles utilisent des deux-points pour séparer les noms de champs. Par exemple, nous pouvons aligner à gauche <, à droite > ou ^ pour centrer les chaînes. Nous pouvons également formatter des entiers en binaire, hexadécimal, etc., et les nombres flottants peuvent être arrondis ou affichés en format exponentiel. Vous pouvez utiliser de nombreux formats. Visitez ici pourObtenir le format()disponiblesméthodesTousFormatage des chaînes.

>>> # Formatage des entiers
>>> "Représentation binaire de {0} est {0:b}".format(12)
'Représentation binaire de 12 est 1100'
>>> # Formatage des nombres flottants
>>> "Représentation en exponentiel : {0:e}".format(1566.345)
'Représentation en exponentiel: 1.566345e+03"
>>> # Arrondi
>>> "Un tiers est : {0:.3f}".format(1/3)
'Un tiers est : 0.333"
>>> # Alignement des chaînes de caractères
>>> "|{:<10|{:^}10|{:}>10|".format('beurre', 'pain', 'jambon')
'|butter | bread | ham|'

Old style format

We can even format strings in the old style like sprintf() in C programming language. We use the % operator to complete this task.

>>> x = 12.3456789
>>> print('The value of x is %',3.2f' %x)
The value of x is 12.35
>>> print('The value of x is %',3.4f' %x)
The value of x is 12.3457

Common Python string methods

String objects have many available methods. The format() method mentioned above is one of them. Common methods include lower(), upper(), join(), split(), find(), replace(), and so on. Here is the complete list ofBuilt-in methods for string processing in Python.

>>> 'w3codebox.lower()
'w3codebox
>>> 'w3codebox.upper()
'w3codebox
>>> 'This will split all words into a list'.split()
['This', 'will', 'split', 'all', 'words', 'into', 'a', 'list']
>>> ' '.join(['This', 'will', 'join', 'all', 'words', 'into', 'a', 'string'])
'This will join all words into a string'
>>> 'Happy New Year'.find('ew')
7
>>> 'Happy New Year'.replace('Happy','Brilliant')
'Brilliant New Year'