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 :

var1 = 'Hello World!' var2 = "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+)

#!/usr/bin/python3 var1 = 'Hello World!' var2 = "Exemple" print ("var1[0]: ", var1[0]) print ("var2[1:5]: ", var2[1:5])

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+)

#!/usr/bin/python3 var1 = 'Hello World!' print ("Chaîne mise à jour :", var1[:6] + 'Exemple !')

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'échappementDescriptionExemple
\ (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

import time

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!\'')  # Sortie : 'Hello, world!'

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" :

OperatorDescriptionExemple
+Concaténation de chaînesa + b sortie : HelloPython
*Répéter la chaîne de sortiea*2 sortie : HelloHello
[]Obtenir les caractères d'une chaîne par indexae
[ : ]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
inOpé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/RChaî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îneVeuillez consulter la section suivante.

Exemples (Python 3.0+)

#!/usr/bin/python3 a = "Hello" b = "Python" print("a + b sortie :", a + b) print("a * 2 sortie :", a * 2) print("a", a[1]) print("a[1:4] sortie :", a[1:4]) if( "H" in a) : print("H est dans la variable a") else : print("H n'est pas dans la variable a") if( "M" not in a) : print("M n'est pas dans la variable a") else : print("M est dans la variable a") print (r'\n') print (R'\n')

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+)

#!/usr/bin/python3 print ("Je m'appelle %s, j'ai %d ans !" % ('Xiao Ming', 10))

Le résultat de sortie de l'exemple ci-dessus est :

我叫 小明 今年 10 岁!

Symboles de formatage des chaînes en Python :

Symbole Description
      %cCaractère de format et son code ASCII
      %sFormater une chaîne
      %dFormat d'entier
      %uFormat d'entier non signé
      %oFormat de nombre octal non signé
      %xFormat de nombre hexadécimal non signé
      %XFormat de nombre hexadécimal non signé (majuscules)
      %fFormate les nombres à virgule flottante, permet de spécifier la précision après la virgule décimale
      %eFormate les nombres à virgule flottante en notation scientifique
      %EFonctionne de la même manière que %e, formate les nombres à virgule flottante en notation scientifique
      %gRaccourci pour %f et %e
      %GRaccourci pour %f et %E
      %pFormate l'adresse d'une variable avec un nombre hexadécimal

Directives auxiliaires de l'opérateur de formatage :

SymboleFonction
*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é)
0Complè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+)

#!/usr/bin/python3 para_str = """Ceci est un exemple de chaîne multiligne Les chaînes multilignes peuvent utiliser des tabulations TAB (\t). Les sauts de ligne peuvent également être utilisés [\n ]。 """ print (para_str)

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.

errHTML = ''' <HTML><HEAD><TITLE> Friends CGI Demo</TITLE></HEAD> <BODY><H3>ERROR</H3> <B>%s</B><P> <FORM><INPUT TYPE=button VALUE=Back ONCLICK="window.history.back()"></FORM> </BODY></HTML> ''' cursor.execute(''' CREATE TABLE users ( login VARCHAR(8), uid INTEGER, prid INTEGER) ''')

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

>>> name = 'Example'
>>> '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

>>> name = 'Example'
>>> 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

>>> x = 1
>>> 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()
Convertit le premier caractère de la chaîne en majuscule

2

center(width, fillchar)

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))
Vérifie si la chaîne se termine par suffix. Si beg ou end est spécifié, vérifie si elle se termine par suffix dans la plage spécifiée. Si c'est le cas, retourne True ; sinon, retourne False.

7

expandtabs(tabsize=8)


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

isalnum()


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

isalpha()


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

isdigit()


Renvoie True si la chaîne ne contient que des chiffres ; sinon, renvoie False.
13

islower()


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

isnumeric()


Renvoie True si la chaîne ne contient que des caractères numériques ; sinon, renvoie False.
15

isspace()


Renvoie True si la chaîne ne contient que des espaces blancs ; sinon, renvoie False.
16

istitle()


Renvoie True si la chaîne est en casse de titre (voir title()) ; sinon, renvoie False.
17

isupper()


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

join(seq)


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

len(string)


Renvoie la longueur de la chaîne.
20

ljust(width[, fillchar])


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

lower()


Convertit tous les caractères majuscules de la chaîne en minuscules.
22

lstrip()


Supprime les espaces ou les caractères spécifiés à gauche de la chaîne.
23

maketrans()


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

max(str)


Renvoie la plus grande lettre de la chaîne str.
25

min(str)


Renvoie la plus petite lettre de la chaîne str.
26

replace(old, new [, max])


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

rjust(width,[, fillchar])


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

rstrip()


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

splitlines([keepends])


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

strip([chars])


Effectue lstrip() et rstrip() sur la chaîne.
35

swapcase()


Convertit les majuscules en minuscules et les minuscules en majuscules dans la chaîne.
36

title()


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

upper()


Convertit les lettres minuscules de la chaîne en majuscules.
39

zfill (width)


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

isdecimal()


Vérifie si la chaîne ne contient que des caractères décimaux. Si c'est le cas, renvoie vrai ; sinon, renvoie faux.
Autres extensions