English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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.
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.
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
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.
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
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.
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'
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')
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
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))
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 | description |
---|---|
\newline | la barre oblique inversée et le retour à la ligne sont ignorés |
\\ | barre oblique inversée |
\' | guillemets simples |
\" | guillemets doubles |
\a | sonnerie ASCII |
\b | bouton d'effacement ASCII |
\f | saut de page ASCII |
\n | saut de ligne ASCII |
\r | retour chariot ASCII |
\t | tabulation horizontale ASCII |
\v | tabulation verticale ASCII |
\ooo | de caractères avec une valeur octale |
\xHH | de 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
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
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|'
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
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'