IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

FAQ Python

FAQ PythonConsultez toutes les FAQ

Nombre d'auteurs : 11, nombre de questions : 188, dernière mise à jour : 14 juin 2021 

 
OuvrirSommaireType de donnéesLes chaînes de caractèresString

un grand nombre de fonctions sur les strings accessibles directement sur les chaines de caractères sans importation de nouveau module: string. Ainsi, vous pourrez trouver une explication complète (avec l'utilisation des paramètres optionels) aux différentes fonctions présentées par la suite.

Créé le 26 mai 2005  par Guigui_

Comme pour tous les objets de type séquence, vous pouvez extraire une sous-séquence par la forme x[start:end:step]start est l'index de départ, end l'index de fin non inclu et step le pas. start et end peuvent être négatifs. Dans ce cas-là, l'index est considéré comme relatif à la fin du string et len(x)+start ou len(x)+end leur sont substitués. De plus si start est omis, il est considéré comme valant 0, si end est omis, il est considéré comme len(x). Si step est omis, il est traité comme valant 1.

Ainsi, pour récupérer les permiers caractères (les plus à gauche) d'un string, il suffit d'utiliser la syntaxe x[:nb]nb représente le nombre de caractères à récupérer.
Pour récupérer les derniers caractères (les plus à droite) d'un string, il suffit d'utiliser la syntaxe x[-nb:]nb représente le nombre de caractères à récupérer.

 
Sélectionnez
>>> x = "0123456789"
>>> x[3:5]
'34'
>>> x[::2]
'02468'
>>> x[1::2]
'13579'
>>> x[:3]
'012'
>>> x[-3:]
'789'
Créé le 18 novembre 2006  par Guigui_

s.replace(old, new, maxsplit=sys.maxint) renvoit une copie de s où les occurences de la sous-chaine old est remplacée par la sous-chaine new

 
Sélectionnez
>>>'tapadaca'.replace('a','i',2)
'tipidaca'
Mis à jour le 13 juin 2005  par Guigui_

s.split(sep=None, maxsplit=sys.maxint) renvoit une liste L de strings où chaque élément de L est un mot de s, où la chaîne sep sépare les mots. Si sep=None, les mots sont séparés par une suite quelconque d'espaces

 
Sélectionnez
>>>'a = b'.split('=')
['a ',' b']
>>>'a  b c     d'.split()
['a', 'b', 'c', 'd']
Mis à jour le 13 juin 2005  par Guigui_

s.strip(x=None) renvoit une copie de s où la chaine x en début/fin de s est supprimé. si x=None, ce sont les espaces qui seront supprimés. lstrip et rstrip sont utilisées respectivement pour la suppresion à gauche et à droite

 
Sélectionnez
>>> 'aaaaabbbbbaaaaa'.strip('aaa')
'bbbbb'
>>> ' a     '.rstrip()
' a'
Mis à jour le 13 juin 2005  par Guigui_

s.count(sub, start=0, end=sys.maxint) renvoie le nombre d'occurences de la souschaine sub dans s[start:end]

 
Sélectionnez
>>> 'tapadaca'.count('a')
4
Mis à jour le 13 juin 2005  par Guigui_

On peut utiliser les tranches de séquences de syntaxe s[i:j:k] qui retourne la sous-séquence de s comprise entre le ième élément compris et le jème non compris de pas k
s[::-1] renvoie les éléments de s dans l'ordre inverse.

 
Sélectionnez
>>> mystr='abcde'
>>> mystr[::-1]
'edcba'
Créé le 21 juillet 2005  par Guigui_

Un raw string est simplement une chaîne de caractères dont les séquences d'échappement avec le caractère \ (backslash ou antislash) ne sont pas interprétées. Cela est particulièrement utile avec les chaînes de caractères représentant les chemin d'accès à un fichier ou à un répertoire qui peuvent s'utiliser avec des / ou des \ et ainsi parfois entraîner des erreurs si vous oubliez de doubler les backslash. Les raw string sont aussi très utiles pour améliorer la lisibilité des expressions régulières friantes de backslash. Dans vos programmes, un raw string est simplement une chaîne de caractères précédée de la lettre r. Vous pouvez voir les caractères spéciaux dans le Python Reference Manual qui nécessiteront une attention particulière.

 
Sélectionnez
>>> a = "c:\python25\tcl\reg1.1\tclreg11.dll"
>>> a
'c:\\python25\tcl\reg1.1\tclreg11.dll'
>>> print a
c:\python25	cl
eg1.1	clreg11.dll
>>> a = r"c:\python25\tcl\reg1.1\tclreg11.dll"
>>> a
'c:\\python25\\tcl\\reg1.1\\tclreg11.dll'
>>> print a
c:\python25\tcl\reg1.1\tclreg11.dll
Créé le 18 novembre 2006  par Guigui_

Lien : Pourquoi j'obtiens une erreur lorsque mon string contient le caractère \ (backslash) ?

Le caractère \ (backslash) est en Python un caractère spécial qui peut donner un sens spécial au caractère le succédant. Par exemple, '\t' est le caractère de tabulation. Vous trouverez la liste des caractères spéciaux dans le Python Reference Manual.
Ainsi, lorsque vous travaillez avec des chaînes de caractères, si celle-ci contient un \, une erreur ou une mauvaise interprétation de la chaîne peut apparaître, notamment lorsque vous manipulez sous windows des path de fichiers ou répertoires.
Si vous avez besoin du caractère \ dans une de vos chaînes, dédoublez-le (\\) ou bien utilisez les raw string qui ne considèrent pas le caractère \ comme spécial.
Dans le cas de fichiers ou répertoires sous windows, on peut aussi utiliser le caractère / (slash) à la place qui est reconnu de la même façon.

 
Sélectionnez
>>> import os
>>> os.path.isdir('c:\python24\bin')
False
>>> os.path.isdir('c:\\python24\\bin')
True
>>> os.path.isdir(r'c:\python24\bin')
True
>>> os.path.isdir('c:/python24/bin')
True
Créé le 8 mai 2006  par Guigui_


Problèmatique: vous souhaitez gérer un compteur avec nombre de chiffres constants (donc en affichant des "0" à gauche des nombres ne possédant pas assez de chiffres).
Pour cela, il vous suffit d'utiliser la fonction s.zfill( width) qui rajoute des caractères '0' devant la chaînes de caractères jusqu'à ce que celle-ci ait une longueur égale à width. Si la chaînes de caractère a une longueur inférieure à width, celle-ci est retournée telle quelle.
Vous pouvez également utiliser la fonction s.rjust( width[, fillchar]) qui permet d'ajuster une chaîne de caractères en ajoutant à gauche le nombre de caractères fillchar nécessaires pour que la nouvelle chaîne de caractères est une longueur égale à width

 
Sélectionnez
for i in range(1000): print str(i).zfill(3)
for i in range(1000): print str(i).rjust(3, '0')


La fonction s.ljust( width[, fillchar]) permet d'ajuster une chaîne de caractères en ajoutant à droite le nombre de caractères fillchar nécessaires pour que la nouvelle chaîne de caractères ait une longueur égale à width

Mis à jour le 6 mars 2007  par Guigui_

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2005-2009 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.