Tutoriel de str ( )
DESCRIPTION.
Créer un objet séquence, ou collection, qui contient une liste de caractères, dite chaine de caractères.
SYNTAXE.
Texte = chaine
Texte = ⇨ Nom de la variable [ OBLIGATOIRE ]
chaine ⇨ éléments de la chaine [ optionnel ]
Texte = str ( chaine )
Texte = ⇨ Nom de la variable [ OBLIGATOIRE ]
str ( ) ⇨ appel du constructeur de classe [ OBLIGATOIRE ]
chaine ⇨ éléments de la chaine [ optionnel ]
REMARQUES.
chaine est une suite de symbole appartenant à un type de codage, UTF en général. On pourra encadrer, indifféremment, chaine soit d'apostrophes ('chaine') soit de guillemets ("chaine") pour une chaine de caractères standards, ou soit de triple apostrophes ('''chaine''') soit de triple guillemets ("""chaine""") pour une chaine de caractères sur plusieurs lignes, dont les retours de lignes et autres formatages de texte doivent être préservés.
Les instances de str ( ) sont des objets itérables et non mutables. Python gèrent les chaîne de caractères comme un objet liste (list ( )) non mutable, on peut donc les gérer en utilisant les méthodes des list ( ) pour leur lecture la plupart du temps. Voir la classe list ( ) pour plus de détails. Bien que non mutables, les str ( ) peuvent être réaffectés avec le même nom, après traitement, pour pallier à cette contrainte.
CRÉER UNE CHAINE DE CARACTERES.
Pour créer une variable alphanumérique, il suffit de lui affecter une valeur.
Politesse = "Salut le Monde !"
print ( Politesse ) retourne Salut le Monde !
print ( type ( Politesse ) ) retourne <class 'str'>
Respect = 'Bonjour Monsieur.'
print ( Respect ) retourne Bonjour Monsieur.
print ( type ( Respect ) ) retourne <class 'str'>
Civilite = str ( "Bien le bonjour." )
print ( Civilite ) retourne Bien le bonjour.
print ( type ( Civilite ) ) retourne <class 'str'>
Rien = ""
print ( Rien ) retourne
print ( type ( Rien ) ) retourne <class 'str'>
Une paire de guillemets, ou d'apostrophes, seule, affecte une chaîne de caractère vide.
Si plusieurs chaines de caractères, séparées uniquement par des espaces, sont passées au constructeur de classe str ( ), elles seront assemblées en une seule chaine.
Civilite = str ( "Bien " "le " "bonjour" "." )
print ( Civilite ) retourne Bien le bonjour.
print ( type ( Civilite ) ) retourne <class 'str'>
Cela est à prendre en compte lors de tests de conditions (if, while).
if "Bien " "le " "bonjour" "." == "Bien le bonjour." :
print ( "C'est pareil !" )
else :
print ( "C'est différent." )
retourne C'est pareil !
Pour affecter des caractères " (guillemets) ou ' (apostrophe), dans une chaîne de caractères, il faut les échapper (échapper les quottes) en les précédant du caractère \.
A = "C'est l"abc" du langage !" retourne SyntaxError: invalid syntax
A = "C'est l\"abc\" du langage !"
print ( A ) retourne C'est l"abc" du langage !
A = 'C\'est l"abc" du langage !'
print ( A ) retourne C'est l"abc" du langage !
Toutefois, on évitera d'utiliser cette technique par l'usage judicieux soit des apostrophes soit des guillemets.
A = "L'est de l'Europe" plutôt que
A = 'L\'est de l\'Europe'
A = 'Et il me dit "Bien le bonjour chez vous." ' plutôt que
A = "Et il me dit \"Bien le bonjour chez vous.\" "
Le caractère \ s'utilise aussi à d'autres fin de formatage des chaînes de caractères. Ainsi utilisez :
- \n, pour un saut de ligne ;
- \r, pour un retour chariot ;
- \r\n, pour un retour chariot suivi d'un saut de ligne ;
- \v or \x0b, pour une tabulation verticale ;
- \f or \x0c, pour un saut de page ;
- \x1c, comme séparateur de fichiers ;
- \x1d, comme séparateur de groupes ;
- \x1e, comme séparateur d’enregistrements ;
- \x85, pour une ligne suivante (code de contrôle C1) ;
- \u2028, comme séparateur de ligne ;
- \u2029, comme séparateur de paragraphe.
Pour lever la spécificité du caractère / (antislash) et ne pas interpréter les caractères qui le suivent comme échappés, faîtes précéder votre chaîne de la référence r, ce qui indiquera à l'interpréteur que vous souhaiter des chaînes de caractères brutes (raw string).
print ( r"Il me répondit : "Bonjour à toi aussi" ..." ) retourne Il me répondit : "Bonjour à toi aussi ! " ...
Si votre affectation comporte un grand nombres de caractère spéciaux, ou si elle est présentée sous une forme spéciale, utilisez la triple quotte. Pour utiliser la triple quotte, on écrire le texte entre une paire de 3 guillemets (""") ou de 3 apostrophes (''').
Dialogue = """
Il me répondit :
"Bonjour à toi aussi
'mon ami' !
...
"""
print ( Dialogue ) retourne
Il me répondit :
"Bonjour à toi aussi
'mon ami' !
...
Cette méthode est particulièrement efficace lors de l’utilisation de caractères peu usités qui pourrait lever une exception durant l’exécution du programme.
CONCATÉNATION DES CHAINES DES CARACTÈRES.
Comme beaucoup de langage, Python permet la concaténation des chaines de caractères (addition de plusieurs chaînes), mais il permet aussi la création et l’affectation a partir de la concaténation.
Texte_1 = "Salut"
Texte_2 = " le "
Texte_3 = "Monde !"
Texte_4 = Texte_1 + Texte_2 + Texte_3
print ( Texte_4 ) retourne Salut le Monde !
Texte_1 = "Salut"
Texte_1 += " mon ami."
print ( Texte_1 ) retourne Salut mon ami.
Il est aussi possible de créer une chaine de caractères en répétant une séquence un certain nombre de fois.
Content = "bien, " * 3
print ( Content ) retourne bien, bien, bien,
PARTICULARITÉ DES CHAINES DE CARACTERES.
Les chaînes de caractères, comme nous l'avons déjà précisé, sont un type de variable-objet list ( ) particulier.
Plus exactement, il s'agit d'objets de la famille des données composites, (sous Python, ce type de d’objet est nommé objet séquence) qui sont des objets constitués de collections d'éléments basiques. Pour ce qui concerne les objets str ( ), ces éléments basiques sont, bien évidement, les caractères.
Cette particularité permet, sous Python, de traiter les chaines de caractères soit comme une variable-objet ou comme un objet de type list ( ), selon les besoins.
Python dispose donc d'un éventail de fonctions permettant de traiter les éléments basiques, au sein des données composites, donc de gérer séparément chaque caractère présent dans un str ( ). Ainsi, chaque caractère d'un str ( ) est désigné par son index (place/rang) et son affectation (valeur). Il est aussi important de noter, que les str ( ) héritent des méthodes de son objet parent list ( ), à l’exception des méthodes modifiants les list ( ). En effet, les chaîne de caractères sont certes des list ( ), mais elles ont la particularité de ne pas être modifiables (elles sont non mutables).
par exemple, si l'on fait :
Texte_A = "abc"
print ( Texte_A ) retourne abc
Texte_B = "ABC"
Texte_A = Texte_A + Texte_B
print ( Texte_A ) retourne abcABC
Texte_C = "123"
Texte_A = Texte_A + " et " + Texte_C
print ( Texte_A ) retourne abcABC et 123
On peut avoir l'impression que la chaîne de caractères Texte_A a d'abord reçu une affectation puis qu'elle a été modifiée 2 fois. Mais réalité :
- l'expression à gauche du signe = est évaluée ;
- si un objet a le même nom que celui à droite du signe = il est détruit ;
- un objet est créé avec le nom à droite du signe = ;
- la valeur de l'expression à gauche du signe = lui est affectée,
GESTION DES CHAINES DES CARACTÈRES.
Connaitre la valeur (le caractère) d'un index (place) dans une chaîne de caractères
Texte = "Salut le Monde !"
print ( Texte [ 0 ] , Texte [ 10 ] , Texte [ 11 ] , Texte [ 4 ] ) retourne S o n t
Notez que les index sont notés à partir de zéro.
Connaitre la longueur (nombre de caractères) d'une chaîne de caractère.
Texte = "Salut le Monde !"
print ( len ( Texte ) ) retourne 16
La variable Texte est constituée de 16 éléments (caractères).
Extraire une sous-chaîne.
Texte = "Salut le Monde !"
print ( Texte [ 3 : 11 ] ) retourne ut le M
Tous les caractères de l'index 3 à l'index 10 de la variable Texte.
Quoi = Texte [ 0 : 5 ]
print ( Quoi ) retourne Salut
La variable Quoi a reçu tous les caractères de l'index 0 à l'index 4 de la variable Texte.
Dans [ x : y ] la valeur de l'index x est inclus (compris) alors que la valeur de l'index y est exclu (non pris)). Voir la classe list ( ) pour plus informations sur le slicing.
Parcourir tous les éléments d'une chaîne de caractères.
Version = "Python 3"
for ksymbole in Version :
print ( ksymbole , end = "-" )
retourne
P-y-t-h-o-n- 3-
Rechercher la présence d'un caractère dans une chaîne.
Joie = "Youpi"
if "p" in Joie : print ( "p est dans Youpi" ) retourne p est dans Youpi
car le test est vrai : p se trouve bien dans youpi.
if "y" in Joie : print ( "y est dans Youpi" ) retourne
rien car le test est faux : y (y minuscule) ne se trouve pas dans Youpi (Y majuscule).
MÉTHODES SPÉCIFIQUES AUX OBJETS STR ( ).
capitalize ( ) : retourne une chaîne commençant par une majuscule.
casefold ( ) : retourne une chaîne insensible à la casse.
center ( ) : retourne une chaîne entourée d'un symbole.
count ( ) : retourne le nombre d'occurrences dans une chaine.
encode ( ) : converti une chaine en un objet byte ou tableau d'octets.
endswith ( ) : teste la fin d'une chaine avec un modèle.
expandtabs ( ) : remplace les tabulations par des blancs.
find ( ) : retourne la position d'une occurrences dans une chaine.
format ( ) : retourne nouvelle une chaine formatée.
format_map ( ) : insère des argument nommés dans une chaine.
index ( ) : retourne la position d'une occurrences dans une chaine.
isalnum ( ) : teste si tous les caractères sont alphanumériques.
isalpha ( ) : teste si tous les caractères sont alphabétiques.
isascii ( ) : teste si tous les caractères sont ASCII.
isdecimal ( ) : teste si tous les caractères sont décimaux.
isdigit ( ) : teste si tous les caractères sont digitaux.
isidentifier ( ) : teste si un mot est un identifiant Python valide.
islower ( ) : teste si tous les caractères sont minuscules.
isnumeric ( ) : teste si tous les caractères sont numériques.
isprintable ( ) : teste si tous les caractères sont affichables.
isspace ( ) : teste si tous les caractères sont des espacements.
istitle ( ) : teste si une chaine de caractères sont titrable.
isupper ( ) : teste si tous les caractères sont majuscules.
join ( ) : assemble plusieurs chaine entre-elles.
ljust ( ) : retourne une chaîne justifiée à gauche.
lower ( ) : retourne tous les caractères en minuscules.
lstrip ( ) : supprime certains caractères en début de chaine.
maketrans ( ) : construit un dictionnaire de cryptage.
partition ( ) : fractionne une chaine avec séparateur.
removeprefix ( ) : supprime le début d'une chaine de caractères.
removesuffix ( ) : supprime la fin d'une chaine de caractères.
replace ( ) : remplace des caractères par d'autres.
rfind ( ) : retourne la dernière occurrences dans une chaine.
rindex ( ) : retourne la dernière occurrences dans une chaine.
rjust ( ) : retourne une chaine justifiée à droite.
rpartition ( ) : retourne une fin de chaine avec séparateur.
rsplit ( ) : retourne la liste des mots d'une chaine de caractères.
rstrip ( ) : supprime certains caractères en fin de chaine.
split ( ) : retourne la liste des mots d'une chaine de caractères.
splitlines ( ) : retourne la liste des sauts de ligne d'une chaine.
startswith ( ) : teste le début d'une chaine avec un modèle.
strip ( ) : supprime certains caractères aux extrémités d'une chaine.
swapcase ( ) : inverse les majuscules et les minuscules.
title ( ) : fait commencer tous les mots de la chaine par une majuscule.
translate ( ) : modifie tous les caractères selon une table de cryptage.
upper ( ) : retourne tous les caractères en majuscules.
zfill ( ) : ajoute des 0 en début de chaine si nécessaire.
Votre aide est précieuse pour améliorer ce site, alors n'hésitez pas à faire part de
Dans la LOGITHEQUE de MON PYTHON PAS A PAS
vous trouvez des suggestions de projets simples et classiques pour
ooo
TESTER - DÉCOUVRIR - PRATIQUER - APPROFONDIR - EXPLORER
ooo
la programmation récréative avec le langage PYTHON 3
avec un exemple de résolution à télécharger pour vous inspirer.