Chaînes de caractères
Chaînes de caractères
Une chaîne de caractères est une suite ordonnée de caractères : on accède à un caractère particulier à l'aide de son indice dans la chaîne.
| texte = "Hello World!"
print(texte[0])
print(texte[1])
print(texte[-1])
|
Caractère d'échappement \
Il est parfois nécessaire d'échapper certains caractères : on le fait en plaçant un \
devant le caractère correspondant.
| citation = "Shakespeare dit \"To be or not to be\""
print(citation)
phrase = 'L\'eleve se dit "facile" mais l\'est-ce vraiment ?'
print(phrase)
|
Shakespeare dit "To be or not to be"
L'eleve se dit "facile" mais l'est-ce vraiment ?
Caractère |
Affichage |
\' |
Apostrophe |
\" |
Guillemets |
\\ |
Backslash |
\n |
Retour à la ligne |
\t |
Tabulation |
| print("Il est vrai que : \n\t\"/!\\ Tel est pris qui croyait prendre /!\\\"")
|
Il est vrai que :
"/!\ Tel est pris qui croyait prendre /!\"
L'utilisation des f-string est recommandée pour formater facilement des chaînes de caractères.
| nom, age = "Louise", 17
print(f"{nom}, elle a {age} ans.")
|
Attention, il devient alors impossible d'utiliser normalement les caractères {
et }
le caractère d'échappement.
| a, b, c = 1, 2, 3
print(f"L'ensemble vide est noté {}. l'ensemble E = {a, b, c}")
|
Input In [1868]
print(f"L'ensemble vide est noté {}. l'ensemble E = {a, b, c}")
^
SyntaxError: f-string: empty expression not allowed
Pour afficher les caractères {
et }
dans un f-string, on les double.
L'astuce du =
| ma_variable = 42
print(f"On a : {ma_variable=}")
|
Méthodes du type str
Méthodes join
et split
Construire une chaîne avec join
La méthode join
appliquée à la chaîne de caractères sep
avec pour argument liste
intercale sep
entre tous les éléments de liste
.
| sep = " | "
liste = ["a", "b", "c"]
print(sep.join(liste))
|
Attention, tous les éléments de liste
doivent être des chaînes de caractères.
| print(",".join([1, 2, 3]))
|
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
Input In [1871], in <cell line: 1>()
----> 1 print(",".join([1, 2, 3]))
TypeError: sequence item 0: expected str instance, int found
On peut les convertir avec la fonction str
si besoin.
| liste = [1, 2, 3]
liste_convertie = [str(e) for e in liste]
print(liste_convertie)
print(",".join(liste_convertie))
|
Découper une chaîne avec split
Il est possible de découper un texte le long d'un séparateur donné à l'aide de la méthode split
.
| texte = "0,1,2,3"
print(texte.split(","))
|
En découpant le texte selon le caractère \n
, on récupère les lignes qui le constituent.
| texte = """
Celui qui croyait au ciel
Celui qui n'y croyait pas
Tous deux adoraient la belle
Prisonnière des soldats
Lequel montait à l'échelle
Et lequel guettait en bas
"""
print(texte.split("\n"))
|
['', 'Celui qui croyait au ciel', "Celui qui n'y croyait pas", 'Tous deux adoraient la belle', 'Prisonnière des soldats', "Lequel montait à l'échelle", 'Et lequel guettait en bas ', '']
La méthode split
peut par exemple être particulièrement utile lorsque l'on souhaite lire des données au format csv
.
1
2
3
4
5
6
7
8
9
10
11
12 | texte = """nom,prenom,date_naissance
Durand,Jean-Pierre,23/05/1985
Dupont,Christophe,15/12/1967
Terta,Henry,12/06/1978"""
def read_csv(texte, sep = ','):
lignes = texte.split("\n")
header = lignes[0].split(sep)
data = [lignes[i].split(sep) for i in range(1, len(lignes))]
return header, data
print(read_csv(texte))
|
(['nom', 'prenom', 'date_naissance'], [['Durand', 'Jean-Pierre', '23/05/1985'], ['Dupont', 'Christophe', '15/12/1967'], ['Terta', 'Henry', '12/06/1978']])
Méthodes ljust
, center
, rjust
texte.center(taille, car)
créé une chaîne de caractère de longueur totale taille
, dans laquelle texte
est centré. Pour ce faire, les caractères car
sont ajoutés afin d'obtenir la taille souhaitée. Si car
n'est pas précisé, le caractère espace est utilisé par défaut.
| print("".center(30, "#"))
print(" Exercice ".center(30, "#"))
print("".center(30, "#"))
|
##############################
########## Exercice ##########
##############################
La méthode ljust
justifie le texte à gauche.
| print(" Exercice ".ljust(30, '-'))
|
Exercice --------------------
La méthode ljust
justifie le texte à droite.
| print(" Exercice ".rjust(30))
|
Méthodes lstrip
, strip
, rstrip
| spam = ' Hello World '
print(f"|{spam}|")
print(f"|{spam.lstrip()}|")
print(f"|{spam.strip()}|")
print(f"|{spam.rstrip()}|")
|
| Hello World |
|Hello World |
|Hello World|
| Hello World|
Méthode replace
| print("chap 1 tp 1 récursivité.py".replace(" ", "_"))
|
chap_1_tp_1_récursivité.py