Python3 Chaînes de caractères
Les chaînes de caractères sont le type de données le plus couramment utilisé en Python. Nous pouvons utiliser des guillemets ('ou") pour créer des chaînes.
Créer une chaîne est simple, il suffit d'attribuer une valeur à une variable. Par exemple :
Accès aux valeurs dans les chaînes en Python
Python ne prend pas en charge un type de caractère unique ; un caractère unique est également utilisé comme une chaîne en Python.
Python accède aux sous-chaînes à l'aide de crochets[]pour extraire des chaînes. La syntaxe de découpage de chaînes est la suivante :
variable[start index:end index]
Les valeurs d'index commencent par0comme valeur de départ,-1est la position de départ à partir de la fin.

Comme dans l'exemple ci-dessous :
Exemples (Python 3.0+)
Le résultat d'exécution de l'exemple ci-dessus est :
var1[0]: H var2[1:5]: unoo
Mise à jour de chaîne Python
Vous pouvez extraire une partie d'une chaîne et la concaténer avec d'autres champs, comme dans l'exemple ci-dessous :
Exemples (Python 3.0+)
Le résultat d'exécution de l'exemple ci-dessus est :
已更新字符串 : Hello Example!
Caractères d'échappement en Python
Lorsque des caractères spéciaux sont nécessaires dans les chaînes de caractères, Python utilise la barre oblique inverse\caractères d'échappement. Comme dans le tableau ci-dessous :
| Caractère d'échappement | Description | Exemple |
|---|---|---|
| \ (en fin de ligne) | Continuation de ligne |
>>> print("line1 \
... line2 \
... line3")
line1 line2 line3
>>>
|
| \\ | Symbole d'antislash |
>>> print("\\")
\
|
| \' | Guillemet simple |
>>> print('\'')
'
|
| \" | Guillemet double |
>>> print("\"")
"
|
| \a | Sonnerie |
>>> print("\a")L'ordinateur émet un son après l'exécution. |
| \b | Retour arrière |
>>> print("Hello \b World!")
Hello World!
|
| \000 | Vide |
>>> print("\000")
>>>
|
| \n | Nouvelle ligne |
>>> print("\n")
>>>
|
| \v | Tabulation verticale |
>>> print("Hello \v World!")
Hello
World!
>>>
|
| \t | Tabulation horizontale |
>>> print("Hello \t World!")
Hello World!
>>>
|
| \r | Retour chariot, déplace\rle contenu qui le suit au début de la chaîne, et remplace les caractères au début un par un jusqu'à ce que le\rcontenu qui le suit soit complètement remplacé. |
>>> print("Hello\rWorld!")
World!
>>> print('google example taobao\r123456')
123456 example taobao
|
| \f | Saut de page |
>>> print("Hello \f World!")
Hello
World!
>>>
|
| \yyy | Nombre octal, y représente des caractères de 0 à 7, par exemple : \012 représente un saut de ligne. |
>>> print("\110\145\154\154\157\40\127\157\162\154\144\41")
Hello World!
|
| \xyy | Nombre hexadécimal, commençant par \x, y représente un caractère, par exemple : \x0a représente un saut de ligne. |
>>> print("\x48\x65\x6c\x6c\x6f\x20\x57\x6f\x72\x6c\x64\x21")
Hello World!
|
| \other | Les autres caractères sont affichés au format normal. |
Utilisez\r pour implémenter une progression en pourcentage :
Exemples
for i in range(101): # Ajouter le graphique de barre de progression et le pourcentage
bar = '[' + '=' * (i // 2) + ' ' * (50 - i // 2) + ']'
print(f"\r{bar} {i:3}%", end='', flush=True)
time.sleep(0.05)
print()
Dans l'exemple suivant, nous avons utilisé différents caractères d'échappement pour démontrer les effets des guillemets simples, du saut de ligne, de la tabulation, du retour arrière, du saut de page, des nombres ASCII, binaires, octaux et hexadécimaux :
Exemples
print("Hello, world!\nHow are you?") # Sortie : Hello, world!
# Comment allez-vous ?
print("Bonjour, monde !\tComment allez-vous ?") # Sortie: Bonjour, monde ! Comment allez-vous ?
print("Bonjour,\b monde !") # Sortie: Bonjour monde !
print("Bonjour,\f monde !") # Sortie:
# Bonjour,
# monde !
print("La valeur ASCII de A est :", ord('A')) # Sortie : La valeur ASCII de A est : 65
print("\x41 est le code ASCII de A) # Sortie : A est le code ASCII de A
decimal_number = 42
binary_number = bin(decimal_number) # Convertir le décimal en binaire
print('Converti en binaire :', binary_number) # Converti en binaire : 0b101010
octal_number = oct(decimal_number) # Convertir le décimal en octal
print('Converti en octal :', octal_number) # Converti en octal : 0o52
hexadecimal_number = hex(decimal_number) # Convertir le décimal en hexadécimal
print('Converti en hexadécimal :', hexadecimal_number) # Converti en hexadécimal : 0x2a
Opérateurs de chaînes Python
Dans le tableau ci-dessous, la variable a dans les exemples a pour valeur la chaîne "Hello", et la variable b a la valeur "Python" :
| Operator | Description | Exemple |
|---|---|---|
| + | Concaténation de chaînes | a + b sortie : HelloPython |
| * | Répéter la chaîne de sortie | a*2 sortie : HelloHello |
| [] | Obtenir les caractères d'une chaîne par index | ae |
| [ : ] | Extraire une partie d'une chaîne, suivant la règlefermée à gauche et ouverte à droite; str[0:2] n'inclut pas le 3e caractère. | a[1:4] sortieell |
| in | Opérateur d'appartenance - renvoie True si la chaîne contient le caractère donné | 'H' in aRésultat de sortie True |
| not in | Opérateur d'appartenance - renvoie True si la chaîne ne contient pas le caractère donné | 'M' not in aRésultat de sortie True |
| r/R | Chaîne brute - Chaînes brutes : toutes les chaînes sont utilisées directement selon leur sens littéral, sans échapper les caractères spéciaux ou non imprimables. Les chaînes brutes ont presque la même syntaxe que les chaînes ordinaires, sauf qu'elles ajoutent la lettrer(insensible à la casse) avant le premier guillemet de la chaîne. | print( r'\n' ) print( R'\n' ) |
| % | Formater une chaîne | Veuillez consulter la section suivante. |
Exemples (Python 3.0+)
Le résultat de sortie de l'exemple ci-dessus est :
a + b 输出结果: HelloPython a * 2 输出结果: HelloHello a[1] 输出结果: e a[1:4] 输出结果: ell H 在变量 a 中 M 不在变量 a 中 \n \n
Formatage des chaînes en Python
Python prend en charge la sortie de chaînes formatées. Bien que cela puisse impliquer des expressions très complexes, l'utilisation la plus élémentaire consiste à insérer une valeur dans une chaîne avec le spécificateur de format de chaîne %s.
En Python, le formatage de chaînes utilise la même syntaxe que la fonction sprintf en C.
Exemples (Python 3.0+)
Le résultat de sortie de l'exemple ci-dessus est :
我叫 小明 今年 10 岁!
Symboles de formatage des chaînes en Python :
| Symbole | Description |
|---|---|
| %c | Caractère de format et son code ASCII |
| %s | Formater une chaîne |
| %d | Format d'entier |
| %u | Format d'entier non signé |
| %o | Format de nombre octal non signé |
| %x | Format de nombre hexadécimal non signé |
| %X | Format de nombre hexadécimal non signé (majuscules) |
| %f | Formate les nombres à virgule flottante, permet de spécifier la précision après la virgule décimale |
| %e | Formate les nombres à virgule flottante en notation scientifique |
| %E | Fonctionne de la même manière que %e, formate les nombres à virgule flottante en notation scientifique |
| %g | Raccourci pour %f et %e |
| %G | Raccourci pour %f et %E |
| %p | Formate l'adresse d'une variable avec un nombre hexadécimal |
Directives auxiliaires de l'opérateur de formatage :
| Symbole | Fonction |
|---|---|
| * | Définit la largeur ou la précision après la virgule |
| - | Utilisé pour l'alignement à gauche |
| + | Affiche le signe plus ( + ) avant les nombres positifs |
| <sp> | Affiche un espace devant les nombres positifs |
| # | Afficher '0' avant les nombres octaux, et '0x' ou '0X' avant les nombres hexadécimaux (selon que 'x' ou 'X' est utilisé) |
| 0 | Complète le nombre affiché avec '0' au lieu de l'espace par défaut |
| % | '%%' produit un seul '%' |
| (var) | Variable mappée (argument de dictionnaire) |
| m.n. | m est la largeur totale minimale à afficher, n est le nombre de chiffres après la virgule décimale (si disponible) |
À partir de Python 2.6, une nouvelle fonction de formatage de chaînes a été ajoutéestr.format(), ce qui améliore les fonctionnalités de formatage des chaînes.
Guillemets triples Python
Les triples guillemets Python permettent à une chaîne de s'étendre sur plusieurs lignes ; la chaîne peut contenir des retours à la ligne, des tabulations et d'autres caractères spéciaux. Un exemple est le suivant :
Exemples (Python 3.0+)
La sortie de l'exemple ci-dessus est :
这是一个多行字符串的实例 多行字符串可以使用制表符 TAB ( ). 也可以使用换行符 [ ]。
Les guillemets triples libèrent les programmeurs du bourbier des guillemets et des chaînes spéciales, en conservant un petit bloc de chaîne dans un format dit WYSIWYG (What You See Is What You Get) du début à la fin.
Un cas d'utilisation typique est lorsque vous avez besoin d'un bloc de HTML ou de SQL. À ce stade, utiliser la concaténation de chaînes et l'échappement de chaînes spéciales serait très fastidieux.
f-string
f-string a été ajoutée dans Python 3.6 et les versions ultérieures. Elle est appelée chaîne littérale formatée et constitue une nouvelle syntaxe pour formater les chaînes.
Auparavant, nous avions l'habitude d'utiliser le signe de pourcentage (%) :
Exemples
>>> 'Hello %s' % name
'Hello Example'
f-stringLa chaîne formatée commence parfsuivie de la chaîne. Les expressions dans la chaîne sont entourées d'accolades {}. Elles seront remplacées par la valeur calculée de la variable ou de l'expression. Exemple :
Exemples
>>> f'Hello {name}' # Remplacer la variable
'Hello Example'
>>> f'{1+2}' # Utiliser une expression
'3'
>>> w = {'name': 'Example', 'url': 'www.example.com'}
>>> f'{w["name"]}: {w["url"]}'
'Example: www.example.com'
Utiliser cette méthode est clairement plus simple ; vous n'avez plus besoin de décider si vous devez utiliser %s ou %d.
Dans Python 3.8 et versions ultérieures, vous pouvez utiliser=le symbole pour concaténer l'expression de l'opération et son résultat :
Exemples
>>> print(f'{x+1}') # Python 3.6
2
>>> x = 1
>>> print(f'{x+1=}') # Python 3.8
x+1=2
Chaînes Unicode
Dans Python 2, les chaînes ordinaires sont stockées sous forme de codes ASCII 8 bits, tandis que les chaînes Unicode sont stockées sous forme de chaînes Unicode 16 bits, ce qui permet de représenter davantage de jeux de caractères. La syntaxe utilisée consiste à ajouter un préfixe avant la chaîneu。
En Python 3, toutes les chaînes de caractères sont des chaînes Unicode.
Fonctions de chaîne intégrées de Python
Les méthodes de chaîne intégrées couramment utilisées en Python sont les suivantes :
| Non. | Méthode et description |
|---|---|
| 1 | capitalize() |
| 2 | Renvoie une chaîne centrée d'une largeur spécifiée. fillchar est le caractère de remplissage, dont la valeur par défaut est un espace. |
| 3 | count(str, beg= 0,end=len(string)) Renvoie le nombre de fois où str apparaît dans string. Si beg ou end est spécifié, renvoie le nombre de fois où str apparaît dans la plage spécifiée. |
| 4 | bytes.decode(encoding="utf-8", errors="strict") Il n'y a pas de méthode decode dans Python 3, mais nous pouvons utiliser la méthode decode() de l'objet bytes pour décoder un objet bytes donné. Cet objet bytes peut être encodé et renvoyé par str.encode(). |
| 5 | encode(encoding='UTF-8',errors='strict') Encode la chaîne dans le format d'encodage spécifié par encoding. Si une erreur se produit, une exception ValueError est levée par défaut, sauf si errors est spécifié comme 'ignore' ou 'replace'. |
| 6 | endswith(suffix, beg=0, end=len(string)) |
| 7 | Convertit les symboles de tabulation de la chaîne en espaces. Le nombre d'espaces par défaut pour un symbole de tabulation est 8. |
| 8 | find(str, beg=0, end=len(string)) Détecte si str est contenu dans la chaîne. Si la plage beg et end est spécifiée, vérifie s'il est contenu dans la plage spécifiée. S'il est contenu, retourne la valeur d'index de début ; sinon, retourne -1. |
| 9 | index(str, beg=0, end=len(string)) Identique à la méthode find(), sauf qu'elle lève une exception si str n'est pas dans la chaîne. |
| 10 | Vérifie si la chaîne est constituée de lettres et de chiffres, c'est-à-dire si tous les caractères de la chaîne sont des lettres ou des chiffres. Si la chaîne contient au moins un caractère et que tous les caractères sont des lettres ou des chiffres, retourne True ; sinon, retourne False. |
| 11 | Retourne True si la chaîne contient au moins un caractère et que tous les caractères sont des lettres ou des caractères chinois ; sinon, retourne False. |
| 12 | Renvoie True si la chaîne ne contient que des chiffres ; sinon, renvoie False. |
| 13 | Renvoie True si la chaîne contient au moins un caractère sensible à la casse et que tous ces caractères (sensibles à la casse) sont en minuscules ; sinon, renvoie False. |
| 14 | Renvoie True si la chaîne ne contient que des caractères numériques ; sinon, renvoie False. |
| 15 | Renvoie True si la chaîne ne contient que des espaces blancs ; sinon, renvoie False. |
| 16 | Renvoie True si la chaîne est en casse de titre (voir title()) ; sinon, renvoie False. |
| 17 | Renvoie True si la chaîne contient au moins un caractère sensible à la casse et que tous ces caractères (sensibles à la casse) sont en majuscules ; sinon, renvoie False. |
| 18 | Utilise la chaîne spécifiée comme séparateur pour fusionner tous les éléments (leurs représentations sous forme de chaîne) de seq en une nouvelle chaîne. |
| 19 | Renvoie la longueur de la chaîne. |
| 20 | Renvoie une nouvelle chaîne avec la chaîne d'origine alignée à gauche et complétée par fillchar jusqu'à la longueur width. fillchar est par défaut un espace. |
| 21 | Convertit tous les caractères majuscules de la chaîne en minuscules. |
| 22 | Supprime les espaces ou les caractères spécifiés à gauche de la chaîne. |
| 23 | Crée une table de conversion pour le mappage de caractères. Dans la forme d'appel la plus simple avec deux paramètres, le premier paramètre est une chaîne représentant les caractères à convertir, et le second paramètre est également une chaîne représentant la cible de conversion. |
| 24 | Renvoie la plus grande lettre de la chaîne str. |
| 25 | Renvoie la plus petite lettre de la chaîne str. |
| 26 | Remplace old par new dans la chaîne. Si max est spécifié, le remplacement ne dépasse pas max fois. |
| 27 | rfind(str, beg=0,end=len(string)) Semblable à la fonction find(), mais effectue la recherche à partir de la droite. |
| 28 | rindex( str, beg=0, end=len(string)) Semblable à index(), mais commence à partir de la droite. |
| 29 | Renvoie une nouvelle chaîne avec la chaîne d'origine alignée à droite et complétée avec fillchar (espace par défaut) jusqu'à la longueur width. |
| 30 | Supprime les espaces ou les caractères spécifiés à la fin de la chaîne. |
| 31 | split(str="", num=string.count(str)) Divise la chaîne en utilisant str comme délimiteur. Si num a une valeur spécifiée, seules num+1 sous-chaînes sont extraites. |
| 32 | Découpe en lignes ('\r', '\r\n', '\n') et renvoie une liste contenant chaque ligne comme élément. Si le paramètre keepends vaut False, les caractères de nouvelle ligne ne sont pas inclus ; s'il vaut True, les caractères de nouvelle ligne sont conservés. |
| 33 | startswith(substr, beg=0,end=len(string)) Vérifie si la chaîne commence par la sous-chaîne spécifiée substr. Si oui, renvoie True ; sinon, renvoie False. Si beg et end sont spécifiés, vérifie dans la plage spécifiée. |
| 34 | Effectue lstrip() et rstrip() sur la chaîne. |
| 35 | Convertit les majuscules en minuscules et les minuscules en majuscules dans la chaîne. |
| 36 | Renvoie une chaîne « titlecased », ce qui signifie que tous les mots commencent par une lettre majuscule et que les lettres restantes sont en minuscules (voir istitle()). |
| 37 | translate(table, deletechars="") Convertit les caractères de la chaîne selon la table donnée par table (contenant 256 caractères). Les caractères à filtrer sont placés dans le paramètre deletechars. |
| 38 | Convertit les lettres minuscules de la chaîne en majuscules. |
| 39 | Renvoie une chaîne de longueur width avec la chaîne d'origine alignée à droite et complétée par des 0 au début. |
| 40 | Vérifie si la chaîne ne contient que des caractères décimaux. Si c'est le cas, renvoie vrai ; sinon, renvoie faux. |