4.1 string --- Opérations courantes sur les chaines de caractères

Ce module définit quelques constantes utiles pour contrôler les classes des caractères et quelques fonctions utiles sur les chaines de caractères. Voir le module re pour les fonctions sur les chaines de caractères basées sur les expressions régulières.

Les constantes définies dans ce module sont :

digits
La chaine de caractères '0123456789'.

hexdigits
La chaine de caractères '0123456789abcdefABCDEF'.

letters
La concaténation des chaines de caractères lowercase et uppercase décrites plus bas.

lowercase
Une chaine de caractères contenant tous les caractères qui sont considérés comme des lettres minuscules. Sur la plupart des systèmes, c'est la chaine de caractères 'abcdefghijklmnopqrstuvwxyz'. Ne pas changer cette définition --- L'effet sur les routines upper() et swapcase() est indéfini.

octdigits
La chaine de caractères '01234567'.

punctuation
Chaine de caractères ASCII qui sont considérés comme des caractères de ponctuation dans la locale "C".

printable
La chaine des caractères qui sont considérés comme imprimable. C'est une combinaison de digits, letters, punctuation, et whitespace.

uppercase
La chaine de caractères contenant tous les caractères qui sont considérés comme des lettres majuscules. Sur la plupart des systèmes, c'est la chaine de caractères 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'. Ne pas changer cette définition --- L'effet sur les routines lower() et swapcase() est indéfini.

whitespace
Une chaine de caractère contenant tous les caractères qui sont considérés comme des espaces. Sur la plupart des systèmes, cela inclu les caractères espaces, tabulation, saut de ligne, retour charriot, saut de page et tabulation verticale. Ne pas changer cette définition --- L'effet sur les routines strip() et split() est indéfini.

La plupart des fonctions fournies par ce module sont aussi définies comme méthode des objets chaines de caractères et des objets Unicode ; Voir ``Méthodes des chaines de caractères'' (section 2.1.5.1) pour de plus amples informations. Les fonctions définies dans ce module sont :

atof(s)

Déconseillé depuis la version 2.0 Utiliser la fonction intégrée float(). Convertit une chaine de caractères en un nombre flottant. La chaine de caractères doit correspondre à la syntaxe standard d'un nombre flottant en Python, éventuellement précédé par un signe ("+" or "-"). Cette fonction se comporte de la même façon que la fonction intégrée float() quand on lui passe une chaine de caractères.

Note: Quand elles sont passées dans une chaine de caractères, les valeurs NaN et Infinity peuvent être retournées, en fonction de la bibliothèque C sous-jacente. Le jeu spécifique de chaines de caractères acceptés qui causent le retour de ces valeurs dépend entièrement sur la bibliothèque C et est connu pour varier.

atoi(s[, base])

Déconseillé depuis la version 2.0 Utiliser la fonction intégrée int(). Convertit une chaine de caractères s en un entier dans la base donnée. La chaine de caractères doit contenir un ou plusieurs chiffres, éventuellement précédés par un signe ("+" ou "-"). La base par défaut est 10. Si c'est 0, une base par défaut est choisi en fonction des premiers caractères de la chaine de caractères (après l'enlèvement du signe) : "0x" ou "0X" signifie 16, "0" signifie 8, 10 pour tous les autres cas. Si base vaut 16, une entête "0x" ou "0X" est toujours acceptée, bien que non requise. Elle se comporte de la même façon que la fonction intégrée int() quand on lui passe une chaine de caractères. (A noter: pour une interprétation plus flexible des nombres littéraux, il faut utiliser la fonction intégrée eval().)

atol(s[, base])

Déconseillé depuis la version 2.0 Utiliser la fonction intégrée long(). Convertit une chaine de caractères s en un entier long dans la base donnée. La chaine de caractères doit contenir un ou plusieurs chiffres, éventuellement précédés par un signe ("+" ou "-"). La base a la même signification que pour la fonction atoi(). Un "l" ou "L" final n'est pas autorisé sauf pour la base 0. Si la fonction est appelée sans base ou avec une base de 10, elle se comporte de la même façon que la fonction intégrée long() quand on lui passe une chaine de caractères.

capitalize(word)
Bascule le premier caractère de l'argument en majuscule.

capwords(s)
Divise l'argument en mots en utilisant split(), bascule en majuscule la première lettre de chaque mot en utilisant capitalize(), et regroupe les mots en utilisant join(). Il faut noter que l'opération remplace les multiples caractères d'espaces par un seul, et enlève les espaces au début et à la fin.

expandtabs(s[, tabsize])
Etend les tabulation dans une chaine de caractères, c'est à dire les remplace par un ou plusieurs espaces en fonction de la colonne courante et de la taille de la tabulation donnée (tabsize). Le numéro de colonne est remis à zéro après chaque saut de ligne rencontré dans la chaine de caractères. Cela ne comprend pas les caractères non imprimables et les séquences d'échappement. La taille de la tabulation est 8 par défaut.

find(s, sub[, start[,end]])
Retourne l'indice de la première position dans s où la sous-chaine de caractères sub est trouvé de telle sorte que sub est totalement contenue dans s[start:end]. Retourne -1 en cas d'erreur. Les valeurs par défaut pour start et end et l'interprétation des valeurs négatives sont les mêmes que pour les tranches.

rfind(s, sub[, start[, end]])
Comme find() mais retourne la position la plus grande.

index(s, sub[, start[, end]])
Comme find() mais lève l'exception ValueError quand la sous-chaine de caractères n'est pas trouvée.

rindex(s, sub[, start[, end]])
Comme rfind() mais lève l'exception ValueError quand la sous-chaine de caractères n'est pas trouvée.

count(s, sub[, start[, end]])
Retourne le nombre d'occurences sans chevauchement de la sous-chaine sub dans la chaine s[start:end]. Les valeurs par défaut pour start et end et l'interprétation des valeurs négatives sont les mêmes que pour les tranches.

lower(s)
Retourne une copie de s, mais avec toutes les lettres majuscules converties en minuscules.

maketrans(from, to)
Retourne la table de traduction convenable à passer à translate() ou à regex.compile(), qui fait correspondre chaque caractère de from au caractère de la même position dans to ; from et to doivent avoir la même taille.

Attention: Ne pas utiliser de chaines de caractères issu de lowercase et uppercase comme arguments ; pour certaines localisation, elles n'ont pas la même taille. Pour les cas de conversions, toujours utiliser lower() et upper().

split(s[, sep[, maxsplit]])
Retourne une liste des mots de la chaine de caractères s. Si le second argument sep est absent ou vaut None, les mots sont séparés par un nombre arbitraire de caractères espaces (espaces, tabulations, saut de ligne, retour charriot, saut de page). Si le second argument sep est présent et ne vaut pas None, il spécifie la chaine de caractères à utiliser pour séparer les mots. La liste retournée aura un élément de plus que le nombre d'occurences sans chevauchement du séparateur dans la chaine de caratères. Le troisième argument optionnel maxsplit vaut 0 par défaut. S'il est différent de 0, quand le nombre de découpage atteint la valeur maxsplit, le reste de la chaine de caractères est retourné comme dernier élément de la liste (ainsi, la liste a au plus maxsplit+1 éléments).

splitfields(s[, sep[, maxsplit]])
Cette fonction se comporte comme la fonction split(). (Dans le passé, la fonction split() n'était utilisée qu'avec un argument, tandis que la fonction splitfields() était seulement utilisée avec deux arguments).

join(words[, sep])
Concatène une liste de tuple ou de mots avec sep comme intermédiaire. Le valeur par défaut pour sep est un simple caractère espace. "string.join(string.split(s, sep), sep)" vaut toujours s.

joinfields(words[, sep])
Cette fonction se comporte comme la fonction join(). (Dans le passé, la fonction join() n'était utilisée qu'avec un argument, tandis que la fonction joinfields() était seulement utilisée avec deux arguments).

lstrip(s)
Retourne une copie de s mais sans les espaces du début.

rstrip(s)
Retourne une copie de s mais sans les espaces de fin.

strip(s)
Retourne une copie de s mais sans les espaces de début et de fin.

swapcase(s)
Retourne une copie de s, mais avec toutes les lettres majuscules converties en minuscules et vice versa.

translate(s, table[, deletechars])
Efface tous les caractères de s qui sont dans deletechars (si présent), puis traduit les caractères en utilisant table, qui doit être une chaine de 256 caractères donnant la traduction pour chaque caractère, indexée par son nombre.

upper(s)
Retourne une copie de s, mais avec toutes les lettres minuscules converties en majuscules.

ljust(s, width)
rjust(s, width)
center(s, width)
Ces fonctions, respectivement, justifie à gauche, à droite et centre une chaine de caractère dans un champs d'une taille donnée. Elles retourne une chaine de caractères qui a au moins width caractères, créée en remplissant la chaine de caractères s avec des espaces à droite, à gauche ou des deux côtés jusqu'à obtenir la taille demandée. Cette chaine de caractères n'est jamais tronquée.

zfill(s, width)
Remplit à gauche une chaine numérique avec des chiffres zéro jusqu'a ce que la taille width soit atteinte. Les chaines de caractères commençant par un signe sont traitées correctement.

replace(str, old, new[, maxsplit])
Retourne une copie de la chaine de caractères str avec toutes les occurences de la sous-chaine old remplacés par new. Si l'argument optionnel maxsplit est donné, seules les maxsplit premières occurences sont remplacées.

Ce module est implémenté en Python. La plupart de ses fonctionnalités ont été réimplémentées dans le module intégré strop. Cependant, il ne faut jamais importer ce module directement. Quand le module string découvre que le module strop existe, il remplace -de façon transparente- ses parties par celles de l'implémentation strop. Après initialisation, Il n'y a pas de soucis à utiliser le module string à la place du module strop.