Chaînes Python (avec exemples)

Dans ce didacticiel, vous apprendrez à créer, formater, modifier et supprimer des chaînes en Python. En outre, vous serez présenté à diverses opérations et fonctions de chaîne.

Vidéo: Python Strings

Qu'est-ce que String en Python?

Une chaîne est une séquence de caractères.

Un personnage est simplement un symbole. Par exemple, la langue anglaise comporte 26 caractères.

Les ordinateurs ne traitent pas de caractères, ils traitent de nombres (binaires). Même si vous pouvez voir des caractères sur votre écran, ils sont stockés et manipulés en interne sous la forme d'une combinaison de 0 et de 1.

Cette conversion de caractère en nombre est appelée codage et le processus inverse est le décodage. ASCII et Unicode sont quelques-uns des encodages populaires utilisés.

En Python, une chaîne est une séquence de caractères Unicode. Unicode a été introduit pour inclure chaque caractère dans toutes les langues et apporter l'uniformité dans l'encodage. Vous pouvez en apprendre davantage sur Unicode à partir de Python Unicode.

Comment créer une chaîne en Python?

Les chaînes peuvent être créées en insérant des caractères entre des guillemets simples ou des guillemets doubles. Même les guillemets triples peuvent être utilisés en Python mais généralement utilisés pour représenter des chaînes multilignes et des docstrings.

 # defining strings in Python # all of the following are equivalent my_string = 'Hello' print(my_string) my_string = "Hello" print(my_string) my_string = '''Hello''' print(my_string) # triple quotes string can extend multiple lines my_string = """Hello, welcome to the world of Python""" print(my_string)

Lorsque vous exécutez le programme, la sortie sera:

 Bonjour Bonjour Bonjour, bienvenue dans le monde de Python

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

Nous pouvons accéder aux caractères individuels en utilisant l'indexation et à une plage de caractères en utilisant le découpage. L'index commence à 0. Essayer d'accéder à un caractère hors de la plage d'index lèvera un IndexError. L'index doit être un entier. Nous ne pouvons pas utiliser de flotteurs ou d'autres types, cela entraînera TypeError.

Python permet une indexation négative pour ses séquences.

L'index de -1fait référence au dernier élément, -2à l'avant-dernier élément, etc. Nous pouvons accéder à une plage d'éléments dans une chaîne en utilisant l'opérateur de découpage :(deux points).

 #Accessing string characters in Python str = 'programiz' print('str = ', str) #first character print('str(0) = ', str(0)) #last character print('str(-1) = ', str(-1)) #slicing 2nd to 5th character print('str(1:5) = ', str(1:5)) #slicing 6th to 2nd last character print('str(5:-2) = ', str(5:-2))

Lorsque nous exécutons le programme ci-dessus, nous obtenons la sortie suivante:

 str = programiz str (0) = p str (-1) = z str (1: 5) = rogr str (5: -2) = am

Si nous essayons d'accéder à un index hors de la plage ou d'utiliser des nombres autres qu'un entier, nous obtiendrons des erreurs.

 # index must be in range >>> my_string(15)… IndexError: string index out of range # index must be an integer >>> my_string(1.5)… TypeError: string indices must be integers

Le découpage peut être mieux visualisé en considérant que l'index se situe entre les éléments, comme indiqué ci-dessous.

Si nous voulons accéder à une plage, nous avons besoin de l'index qui découpera la partie de la chaîne.

Tranchage de chaîne en Python

Comment changer ou supprimer une chaîne?

Les chaînes sont immuables. Cela signifie que les éléments d'une chaîne ne peuvent pas être modifiés une fois qu'ils ont été affectés. Nous pouvons simplement réaffecter différentes chaînes au même nom.

 >>> my_string = 'programiz' >>> my_string(5) = 'a'… TypeError: 'str' object does not support item assignment >>> my_string = 'Python' >>> my_string 'Python'

Nous ne pouvons pas supprimer ou supprimer des caractères d'une chaîne. Mais la suppression complète de la chaîne est possible en utilisant le delmot - clé.

 >>> del my_string(1)… TypeError: 'str' object doesn't support item deletion >>> del my_string >>> my_string… NameError: name 'my_string' is not defined

Opérations sur les chaînes Python

De nombreuses opérations peuvent être effectuées avec des chaînes, ce qui en fait l'un des types de données les plus utilisés en Python.

Pour en savoir plus sur les types de données disponibles dans Python, visitez: Types de données Python

Concaténation de deux chaînes ou plus

La jonction de deux ou plusieurs chaînes en une seule est appelée concaténation.

L' opérateur + fait cela en Python. Le simple fait d'écrire deux chaînes littérales ensemble les concatène également.

L' opérateur * peut être utilisé pour répéter la chaîne un certain nombre de fois.

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

Lorsque nous exécutons le programme ci-dessus, nous obtenons la sortie suivante:

str1 + str2 = HelloWorld! str1 * 3 = BonjourBonjourBonjour

L'écriture de deux chaînes littérales ensemble les concatène également comme l' opérateur + .

Si nous voulons concaténer des chaînes dans différentes lignes, nous pouvons utiliser des parenthèses.

 >>> # two string literals together >>> 'Hello ''World!' 'Hello World!' >>> # using parentheses >>> s = ('Hello '… 'World') >>> s 'Hello World'

Itérer à travers une chaîne

Nous pouvons parcourir une chaîne en utilisant une boucle for. Voici un exemple pour compter le nombre de 'dans une chaîne.

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

Lorsque nous exécutons le programme ci-dessus, nous obtenons la sortie suivante:

 3 lettres trouvées

Test d'appartenance à une chaîne

Nous pouvons tester si une sous-chaîne existe ou non dans une chaîne, en utilisant le mot-clé in.

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

Fonctions intégrées pour travailler avec Python

Diverses fonctions intégrées qui fonctionnent avec la séquence fonctionnent également avec des chaînes.

Certains des plus couramment utilisés sont enumerate()et len(). La enumerate()fonction renvoie un objet énumérer. Il contient l'index et la valeur de tous les éléments de la chaîne sous forme de paires. Cela peut être utile pour l'itération.

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

 str = 'cold' # enumerate() list_enumerate = list(enumerate(str)) print('list(enumerate(str) = ', list_enumerate) #character count print('len(str) = ', len(str))

Lorsque nous exécutons le programme ci-dessus, nous obtenons la sortie suivante:

 list (enumerate (str) = ((0, 'c'), (1, 'o'), (2, 'l'), (3, 'd')) len (str) = 4

Formatage de chaîne Python

Séquence d'échappement

If we want to print a text like He said, "What's there?", we can neither use single quotes nor double quotes. This will result in a SyntaxError as the text itself contains both single and double quotes.

 >>> print("He said, "What's there?"")… SyntaxError: invalid syntax >>> print('He said, "What's there?"')… SyntaxError: invalid syntax

One way to get around this problem is to use triple quotes. Alternatively, we can use escape sequences.

An escape sequence starts with a backslash and is interpreted differently. If we use a single quote to represent a string, all the single quotes inside the string must be escaped. Similar is the case with double quotes. Here is how it can be done to represent the above text.

 # using triple quotes print('''He said, "What's there?"''') # escaping single quotes print('He said, "What\'s there?"') # escaping double quotes print("He said, "What's there? "")

When we run the above program, we get the following output:

 He said, "What's there?" He said, "What's there?" He said, "What's there?"

Here is a list of all the escape sequences supported by Python.

Escape Sequence Description
ewline Backslash and newline ignored
\ Backslash
\' Single quote
" Double quote
a ASCII Bell
 ASCII Backspace
f ASCII Formfeed
ASCII Linefeed
ASCII Carriage Return
ASCII Horizontal Tab
v ASCII Vertical Tab
ooo Character with octal value ooo
xHH Character with hexadecimal value HH

Here are some examples

 >>> print("C:\Python32\Lib") C:Python32Lib >>> print("This is printedin two lines") This is printed in two lines >>> print("This is x48x45x58 representation") This is HEX representation

Raw String to ignore escape sequence

Sometimes we may wish to ignore the escape sequences inside a string. To do this we can place r or R in front of the string. This will imply that it is a raw string and any escape sequence inside it will be ignored.

 >>> print("This is x61 good example") This is a good example >>> print(r"This is x61 good example") This is x61 good example

The format() Method for Formatting Strings

The format() method that is available with the string object is very versatile and powerful in formatting strings. Format strings contain curly braces () as placeholders or replacement fields which get replaced.

We can use positional arguments or keyword arguments to specify the order.

 # Python string format() method # default(implicit) order default_order = "(), () and ()".format('John','Bill','Sean') print('--- Default Order ---') print(default_order) # order using positional argument positional_order = "(1), (0) and (2)".format('John','Bill','Sean') print('--- Positional Order ---') print(positional_order) # order using keyword argument keyword_order = "(s), (b) and (j)".format(j='John',b='Bill',s='Sean') print('--- Keyword Order ---') print(keyword_order)

When we run the above program, we get the following output:

 --- Default Order --- John, Bill and Sean --- Positional Order --- Bill, John and Sean --- Keyword Order --- Sean, Bill and John

The format() method can have optional format specifications. They are separated from the field name using colon. For example, we can left-justify <, right-justify > or center ^ a string in the given space.

Nous pouvons également formater les entiers sous forme binaire, hexadécimale, etc. et les flottants peuvent être arrondis ou affichés au format exposant. Vous pouvez utiliser des tonnes de formatage. Visitez ici pour tout le formatage de chaîne disponible avec la format()méthode.

 >>> # formatting integers >>> "Binary representation of (0) is (0:b)".format(12) 'Binary representation of 12 is 1100' >>> # formatting floats >>> "Exponent representation: (0:e)".format(1566.345) 'Exponent representation: 1.566345e+03' >>> # round off >>> "One third is: (0:.3f)".format(1/3) 'One third is: 0.333' >>> # string alignment >>> "|(:10)|".format('butter','bread','ham') '|butter | bread | ham|'

Formatage à l'ancienne

Nous pouvons même formater des chaînes comme l'ancien sprintf()style utilisé dans le langage de programmation C. Nous utilisons l' %opérateur pour accomplir cela.

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

Méthodes de chaîne Python courantes

Il existe de nombreuses méthodes disponibles avec l'objet string. La format()méthode que nous avons mentionnée ci-dessus en fait partie. Certaines des méthodes couramment utilisées sont lower(), upper(), join(), split(), find(), replace()etc. Voici une liste complète de toutes les méthodes intégrées pour travailler avec des chaînes en Python.

 >>> "PrOgRaMiZ".lower() 'programiz' >>> "PrOgRaMiZ".upper() 'PROGRAMIZ' >>> "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'

Articles intéressants...