Opérations de base sur les chaînes python
Sommaire
- 1- Objectifs
- 2- Présentation
- 3- Accéder aux caractères dans les chaînes par index en Python
- 4- Concaténation et répétition
- 4.1- Concaténation de chaînes
- 4.2- Répétition d'une chaîne
- 5- Extraction de sous-chaînes :
- 6- Saut de caractère lors de la division des chaînes Python
- 7- Construire une partition
- 7.1.1- Sommaire du cours Python
Opérations de base sur les chaînes python
-
Objectifs
- Connaître les opérations de base sur les chaînes python
-
Présentation
- Les chaînes sont entre ‘ ou » et les \n, \t sont toujours évalués dedans !
- On peut aussi faire commencer et finir une chaîne par un triple double quotes « » » ou simple quote »’ (permet d’inclure des retours chariots, comme avec <<"EOT"; ... EOT en perl).
-
Accéder aux caractères dans les chaînes par index en Python
- Les chaînes Python sont des séquences de caractères individuels et partagent leurs méthodes d’accès de base avec ces autres séquences Python – listes et tuples.
- Le moyen le plus simple d’extraire des caractères uniques à partir de chaînes (et des membres individuels de n’importe quelle séquence) est de les décompresser dans les variables correspondantes.
- x = 'abcdef' : définition de la chaîne.
- En règle générale, il est plus utile d’accéder aux caractères individuels d’une chaîne en utilisant la syntaxe d’indexation de type tableau de Python.
- Ici, comme pour toutes les séquences, il est important de se rappeler que l’indexation est basée sur zéro; autrement dit, le premier élément de la séquence est le numéro 0.
- Si vous souhaitez commencer à compter à partir de la fin de la chaîne, au lieu du début, utilisez un index négatif. Par exemple, un index de -1 fait référence au caractère le plus à droite de la chaîne.
-
Concaténation et répétition
-
Concaténation de chaînes
:
x = 'aaa' + 'bbb' donne aaabbb.
-
Répétition d’une chaîne
:
x = 'ab' * 5 donne ababababab
-
Extraction de sous-chaînes :
- x = 'apcpedagogie.com' : définition de la chaîne.
- print(x[2]) : 3ème caractère (indice commence à 0), ici c.
- print(x[0:3]) : caractères d’indices 0 à 3 – 1, ici apc.
- print(x[4:8]) : caractères d’indices 4 à 8 – 1, ici edag.
- Regardons ce qui se passe ici. Comme précédemment, nous spécifions que nous voulons commencer à la position 4 (base zéro) dans la chaîne. Mais maintenant, au lieu de nous contenter d’un seul caractère de la chaîne, nous disons que nous voulons plus de caractères, jusqu’à mais sans inclure le caractère en position 8.
- print(x[1:]) : caractères à partir de l’indice 1 jusqu’à la fin , ici pcpedagogie.com.
- print(x[:3]) : caractères jusqu’à l’indice 3 – 1, ici apc.
- print(x[-2:]) : les 2 derniers caractères, ici om.
- print(x[0:-2]) : toute la chaîne sauf les 2 derniers caractères , ici apcpedagogie.c
- si l’index de fin est > à la longueur, c’est la longueur qui est utilisée.
- print(len(x)) : longueur, ici 16.
- x[::2] : chaîne avec un caractère sur deux (en commençant par le premier), ici aceaoi.o.
- x[1::2] : chaîne avec un caractère sur deux en commençant par le deuxième, ici ppdggecm.
- x[::-1] : la chaîne renversée, ici moc.eigogadepcpa.
-
Saut de caractère lors de la division des chaînes Python
- La dernière variante de la syntaxe entre crochets est d’ajouter un troisième paramètre, qui spécifie la «foulée», ou le nombre de caractères que vous souhaitez avancer après que chaque caractère est récupéré de la chaîne d’origine.x[4:8:1]
- Le premier caractère récupéré correspond toujours à l’index avant les deux points; mais par la suite, le pointeur avance quel que soit le nombre de caractères que vous spécifiez comme votre pas, et récupère le caractère à cette position. Et ainsi de suite, jusqu’à ce que l’indice de fin soit atteint ou dépassé.
- Si, comme dans les cas que nous avons rencontrés jusqu’à présent, le paramètre est omis, sa valeur par défaut est 1, de sorte que chaque caractère du segment spécifié est récupéré. Un exemple rend cela plus clair.
- Vous pouvez également spécifier une foulée négative. Comme vous vous en doutez, cela indique que vous souhaitez que Python recule lors de la récupération de caractères.
-
Construire une partition
- Une méthode de chaîne similaire est
partition()
. Cela divise également une chaîne en fonction du contenu, les différences étant que le résultat est un tuple, et il préserve le délimiteur, ainsi que les deux parties de la chaîne cible de chaque côté de celui-ci. Contrairement àsplit()
, effectuepartition()
toujours une seule opération de fractionnement, quel que soit le nombre de fois où le délimiteur apparaît dans la chaîne cible. - La syntaxe de partition()est:
string.partition(separator)
site= 'apcpedagogie.com'
print(site[4])# Obtenez le 5ème caractère (soit e)
site= 'apcpedagogie.com'
print(site[-4])# Obtenez le 4ème caractère de la fin (soit .)
-
Comme pour tous les objets de type séquence, vous pouvez extraire une sous-séquence par la forme x[start:end:step] où start est l’index de départ, end est l’index de fin non inclu et step le pas. start et end peuvent être négatifs. Dans ce cas-là, l’index est considéré comme relatif à la fin du string et len(x)+start ou len(x)+end leur sont substitués. De plus si start est omis, il est considéré comme valant 0, si end est omis, il est considéré comme len(x). Si step est omis, il est traité comme valant 1.
site= 'apcpedagogie.com'
print(site[4:8])# Obtenez le 4ème caractère à la position 8-1
print(site[4:8:1])# 1 est la valeur par défaut de toute façon, donc même résultat
print(site[4:8:2])# Renvoyez un caractère, puis avancez de 2 positions, etc.
Résultats :
edag
edag
ea
string = "apcpedagogie.com, c'est notre site de formation"
# ',' séparateur est trouvé
print(string.partition(','))
# 'notre' séparateur est trouvé
print(string.partition('notre '))
string = "apcpedagogie.com, c'est notre site de formation"
# se divise à la première occurrence de 'com'
print(string.partition('com'))
""" Résultats
('apcpedagogie.com', ',', " c'est notre site de formation")
("apcpedagogie.com, c'est ", 'notre ', 'site de formation')
('apcpedagogie.', 'com', ", c'est notre site de formation")
"""