Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial programming >> Python

Chaînes Python

Chaînes Python

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

Vidéo :Chaînes Python

Qu'est-ce qu'une chaîne en Python ?

Une chaîne est une suite de caractères.

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

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

Cette conversion d'un caractère en un nombre s'appelle l'encodage 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 uniformiser 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 plaçant des caractères entre guillemets simples ou doubles. Même les guillemets triples peuvent être utilisés en Python, mais ils sont 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 :

Hello
Hello
Hello
Hello, welcome to
           the world of Python

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

Nous pouvons accéder à des caractères individuels en utilisant l'indexation et une gamme de caractères en utilisant le découpage. L'index commence à partir de 0. Essayer d'accéder à un caractère hors de la plage d'index lèvera un IndexError . L'indice doit être un entier. Nous ne pouvons pas utiliser de flottants ou d'autres types, cela se traduira par TypeError .

Python autorise l'indexation négative pour ses séquences.

L'indice de -1 fait référence au dernier élément, -2 jusqu'à l'avant-dernier élément et ainsi de suite. Nous pouvons accéder à une gamme 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 nombre 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.

Comment modifier 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 supprimer entièrement la chaîne est possible en utilisant le del mot-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 réunion de deux chaînes ou plus en une seule est appelée concaténation.

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

Le * 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 = HelloHelloHello

L'écriture de deux littéraux de chaîne ensemble les concatène également comme + 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 sur une chaîne

Nous pouvons parcourir une chaîne en utilisant une boucle for. Voici un exemple pour compter le nombre de 'l' 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 letters found

Test d'appartenance à une chaîne

Nous pouvons tester si une sous-chaîne existe dans une chaîne ou non, 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 les chaînes.

Certains des plus couramment utilisés sont enumerate() et len() . Le enumerate() La fonction renvoie un objet d'énumération. 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

Si nous voulons imprimer un texte comme Il a dit, "Qu'est-ce qu'il y a?" , nous ne pouvons utiliser ni guillemets simples ni guillemets doubles. Cela se traduira par un SyntaxError car le texte lui-même contient à la fois des guillemets simples et doubles.

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

Une façon de contourner ce problème consiste à utiliser des guillemets triples. Alternativement, nous pouvons utiliser des séquences d'échappement.

Une séquence d'échappement commence par une barre oblique inverse et est interprétée différemment. Si nous utilisons un guillemet simple pour représenter une chaîne, tous les guillemets simples à l'intérieur de la chaîne doivent être échappés. Similaire est le cas avec les guillemets doubles. Voici comment cela peut être fait pour représenter le texte ci-dessus.

# 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?\"")

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

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

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

Séquence d'échappement Description
\nouvelle ligne Barre oblique inverse et retour à la ligne ignorés
\\ Barre oblique inverse
\' Avis simples
\" Avis double
\a Sonnerie ASCII
\b Retour arrière ASCII
\f Saut de page ASCII
\n Saut de ligne ASCII
\r Retour chariot ASCII
\t Onglet horizontal ASCII
\v Onglet vertical ASCII
\ooo Caractère avec la valeur octale ooo
\xHH Caractère avec une valeur hexadécimale HH

Voici quelques exemples

>>> print("C:\\Python32\\Lib")
C:\Python32\Lib

>>> print("This is printed\nin two lines")
This is printed
in two lines

>>> print("This is \x48\x45\x58 representation")
This is HEX representation

Chaîne brute pour ignorer la séquence d'échappement

Parfois, nous pouvons souhaiter ignorer les séquences d'échappement à l'intérieur d'une chaîne. Pour ce faire, nous pouvons placer r ou R devant la ficelle. Cela impliquera qu'il s'agit d'une chaîne brute et toute séquence d'échappement à l'intérieur sera ignorée.

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

La méthode format() pour formater les chaînes

Le format() La méthode disponible avec l'objet string est très polyvalente et puissante pour le formatage des chaînes. Les chaînes de format contiennent des accolades {} comme espaces réservés ou champs de remplacement qui sont remplacés.

Nous pouvons utiliser des arguments de position ou des arguments de mots-clés pour spécifier l'ordre.

# Python string format() method

# default(implicit) order
default_order = "{}, {} and {}".format('John','Bill','Sean')
print('\n--- Default Order ---')
print(default_order)

# order using positional argument
positional_order = "{1}, {0} and {2}".format('John','Bill','Sean')
print('\n--- Positional Order ---')
print(positional_order)

# order using keyword argument
keyword_order = "{s}, {b} and {j}".format(j='John',b='Bill',s='Sean')
print('\n--- Keyword Order ---')
print(keyword_order)

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

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

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

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

Le format() peut avoir des spécifications de format facultatives. Ils sont séparés du nom du champ par deux-points. Par exemple, nous pouvons justifier à gauche < , justifiez à droite > ou centrer ^ une chaîne dans l'espace donné.

Nous pouvons également formater les nombres entiers en binaire, hexadécimal, etc. et les flottants peuvent être arrondis ou affichés au format exposant. Il y a des tonnes de formatage que vous pouvez utiliser. Visitez ici pour tout le formatage de chaîne disponible avec le 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}|{:^10}|{:>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 le % 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. Le format() La 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'

Python

  1. C chaîne
  2. Dictionnaire Python
  3. Chaînes Java
  4. Chaînes d'énumération Java
  5. Chaînes Python :Remplacer, Joindre, Diviser, Inverser, Majuscules et Minuscules
  6. Python String strip() Fonction avec EXAMPLE
  7. Python String count() avec des EXEMPLES
  8. Python String format() Expliquer avec des EXEMPLES
  9. Longueur de la chaîne Python | Méthode len() Exemple