FAQ PythonConsultez toutes les FAQ

Nombre d'auteurs : 11, nombre de questions : 188, dernière mise à jour : 23 mai 2009  Ajouter une question

 

Cette FAQ a été réalisée à partir des questions posées sur le forum Python complétées par d'autres questions qui pouvaient nous sembler intéressantes de traiter. Toutefois il se peut que les réponses apportées contiennent des erreurs, imprécisions ... Vous pouvez dans ce cas contacter un des membres de la rédaction pour lui faire part de vos remarques.

L'équipe Python de Developpez.


SommaireType de donnéesLes chaînes de caractèresString (10)
précédent sommaire suivant
 

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.

Mis à jour le 26 mai 2005 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.

Code python :
1
2
3
4
5
6
7
8
9
10
11
>>> x = "0123456789" 
>>> x[3:5] 
'34' 
>>> x[::2] 
'02468' 
>>> x[1::2] 
'13579' 
>>> x[:3] 
'012' 
>>> x[-3:] 
'789'

Mis à jour le 18 novembre 2006 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

Code python :
1
2
>>>'tapadaca'.replace('a','i',2) 
'tipidaca'

Mis à jour le 26 mai 2005 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

Code python :
1
2
3
4
>>>'a = b'.split('=') 
['a ',' b'] 
>>>'a  b c     d'.split() 
['a', 'b', 'c', 'd']

Mis à jour le 28 mai 2005 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

Code python :
1
2
3
4
>>> 'aaaaabbbbbaaaaa'.strip('aaa') 
'bbbbb' 
>>> ' a     '.rstrip() 
' a'

Mis à jour le 28 mai 2005 Guigui_

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

Code python :
1
2
>>> 'tapadaca'.count('a') 
4

Mis à jour le 30 mai 2005 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.

Code python :
1
2
3
>>> mystr='abcde' 
>>> mystr[::-1] 
'edcba'

Mis à jour le 21 juillet 2005 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 stringest 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.

Code python :
1
2
3
4
5
6
7
8
9
10
11
>>> 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

Mis à jour le 18 novembre 2006 Guigui_

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.

Code python :
1
2
3
4
5
6
7
8
9
>>> 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

Mis à jour le 8 mai 2006 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

Code python :
1
2
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 18 janvier 2007 Guigui_

Proposer une nouvelle réponse sur la FAQ

Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour ça


Réponse à la question

Liens sous la question
précédent sommaire suivant
 

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 © 2014 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et 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.

 
 
 
 
Partenaires

PlanetHoster
Ikoula