EricLeCodeur
Eric Le Codeur

Follow

Eric Le Codeur

Follow
Python : Manipulation des Strings

Python : Manipulation des Strings

EricLeCodeur's photo
EricLeCodeur
·Mar 21, 2022·

4 min read

Le cours accéléré Python est gratuit et sera publié ici sur dev.to. Je publierai un nouvel article tous les deux jours environ. Pour ne rien manquer, vous pouvez me suivre sur twitter :

Manipulation des Strings

Voyons maintenant un peu plus en détail comment créer et manipuler des chaînes de caractères (Strings) avec Python.

Une variable de type String peut être créée avec des guillemets simples ou doubles

name = 'Mike'

# ou

name = "Mike"

Python permet d’insérer des caractères spéciaux dans vos Strings.

message = "Hello \nWorld"
print(message)
# Hello
# World

Le caractère spécial “\n” va être remplacé par un saut de ligne. Python met à votre disposition plusieurs caractères spéciaux. Voici une liste : https://www.w3schools.com/python/gloss_python_escape_characters.asp

Interpolation

L’utilisation du préfixe “f” permet d’afficher le contenu de la variable spécifié entre les crochets {}

name = "Mike"

print(f"Hello {name}")
# Hello Mike

Python peut également exécuter n’importe quelle expression qui se trouve entre les crochets {}, du coup ce concept peut devenir très puissant. Voici en exemple :

name = "Mike"

print(f"Hello {name.upper()}")
# Hello MIKE

Il est également possible de joindre deux Strings avec l'opérateur "+" (plus)

name = "Mike"

print("Hello " + name)
# Hello Mike

Ignorer les caractères spéciaux

L’utilisation du préfixe “r” permet d’afficher le contenu de la String tel quelle. C’est-à-dire sans tenir compte des caractères spéciaux (ex. \n)

message = r"https:\\example.com\index.html"
print(message)
# https:\\example.com\index.html

Ici l’utilisation du préfix “r” permet d’afficher le path correctement. Sinon Python aurait interprété le double backslash "\\" comme un caractère spécial.

String sur plusieurs lignes

Python permet également de créer une String exactement tel que saisie même avec les sauts de lignes. Pour ce faire vous devez utiliser trois guillemets.

message = """This is multiline
String that is easier to
read and assign"""

print(message)
# This is multiline
# String that is easier to
# read and assign

Du coup, la lecture de la String dans le code est très explicite.

Récupération d’une partie de String

Python permet de récupérer seulement une partie de la String.

Une variable String est en effet composé de plusieurs caractères qu’il est possible de lire un à un ou en groupe. Voici quelque exemple

product = "iPhone 12"
# position 012345678

print(product[0]) 
# i

print(product[2]) 
# h

print(product[1:6])
# Phone

Chaques caractères est associé à un numéro de position. La première position est toujours 0. Pour accéder à une position en particulier il faut la spécifier entre crochet []

A noter qu’il n’est pas possible de modifier la String de cette façon. Toute tentative de modification va retourner une erreur.

product = "iPhone 12"
product[0] = "e"

# TypeError: 'str' object does not support item assignment

Il est possible d'accéder aux caractères de la String à partir de la fin.

message = "Hello World";

print(message[-1])
# d

La position -1 représente le dernier caractère, -2 l'avant-dernier, et ainsi de suite.

Lors de la récupération de plusieurs caractères, si une des deux positions est omise, la récupération se fera depuis le début de la String

message = "Hello World";

print(message[:5])
# Hello

print(message[-5:])
# World

Manipulation des Strings

Python a plusieurs fonctions qui vous permettent de transformer le contenu de la String. En voici quelques-unes :

Conversion majuscule et minuscule

name = 'Mike Taylor'

print(name.lower())
# mike taylor

print(name.upper())
# MIKE TAYLOR

Supprimer les espaces blancs avant et après une String

message = "  Hello World        "

print(message.strip())
# "Hello World"

Retourner le nombre de caractères dans la String

name = "Mike Taylor"

nb_char = len(name)

print(nb_char)
# 11

Changer la première lettre d’une String en majuscule

name = "mike"

name_cap = name.capitalize() 

print(name_cap)
# Mike

Changer la première lettre de tous les mots d’une String en majuscule

name = 'mike Taylor'

name_title = name.title() 

print(name_title)
# Mike Taylor

Vérifier si la String commence ou se termine par un ou des caractères en particulier

name = 'Mike'

print(name.startswith('M')) 
# True

print(name.endswith('ke')) 
# True

Remplacer une partie de la String par d’autres caractères

name = "Mike"

new_name = name.replace('M', 'P')

print(new_name)
# Pike

Retourner la position d’un caractère en particulier

name = "Mike"

print(name.find('k'))
# 2

À noter que la première position commence toujours à zéro et si le caractère n’est pas trouvé, la fonction retournera -1

Conclusion

C'est tout pour aujourd'hui, je publierai un nouvel article tous les deux jours environ. Pour être sûr de ne rien rater vous pouvez me suivre sur twitter :

 
Share this