Nov 27, 2024

Wiki

Python

Aide

edit SideBar

Search

Les Chaines De Caracteres


Généralités

Présentation

Les chaînes de caractères sont un type de données composite constitué exclusivement de caractères. Elles ne sont pas modifiables : il faut créer une nouvelle chaîne, et y recopier ce que l'on souhaite changer.

Définition, et affichage

On les définit avec des apostrophes, ou des guillemets : 'aze' et "sqd" sont deux chaînes de caractères.

  >>> chaine = "Coucou"
  >>> chaine
  'Coucou'
  >>> type(chaine)
  <type 'str'>

On lit une chaîne de caractères avec raw_input(), en passant éventuellement le message à afficher en argument. On affiche le résultat avec print() :

  >>> chaine = raw_input()
  Coucou
  >>> print chaine
  Coucou
  >>> chaine2 = raw_input("Votre chaine : ")
  Votre chaine : Coucou2
  >>> print chaine2
  Coucou2

On peut tout à fait placer un \n dans une chaîne de caractères, auquel cas on aura le saut de ligne attendu.

Opérations de base

Si toto est une chaîne de caractères, toto[i] est le caractère i+1 de cette chaîne, et len(toto) sa longueur. Enfin, on peut concaténer deux chaînes de caractères avec + :

  >>> toto = 'abcde'
  >>> len(toto) 
  5
  >>> toto[0]
  'a'
  >>> toto[1]
  'b'
  >>> toto[-1]
  'e'
  >>> toto + 'fg'
  'abcdefg'

On convertit la chaîne s='123' en nombre par int(s) (float, si c’est un réel). Enfin, on transforme le nombre N=123 en chaînes de caractères par str(N)...

  >>> s = '123'
  >>> s, type(s)
  ('123', <type 'str'>)
  >>> n = int(s)
  >>> n, type(n)
  (123, <type 'int'>)
  >>> str(n), n
  ('123', 123)

for, if et chaînes de caractères

Utilisation du for

La boucle for peut parcourir une chaîne de caractères. Par exemple :

  >>> for k in 'lettres':
  ...     print k
  ... 
  l
  e
  t
  t
  r 
  e
  s

Chaque lettre du mot lettres est affichée, une par ligne.

Utilisation du if

Dans le même esprit, la condition du if peut porter sur l’appartenance d’un caractère à une chaîne de caractères :

  >>> toto = 'aze'
  >>> if 'a' in toto :
  ...     print toto
  ...
  aze

Dans ce qui précède, la condition est vérifiée, donc 'aze' est affiché. On peut utiliser not in au lieu de in, si besoin est.

Des méthodes de la classe str

Modifications d’une chaîne

Les méthodes

replace(str1,str2)
Remplace str1 par str2 dans la chaîne courante.
capitalize()
Met le premier caractère de la chaîne courante en majuscule, et le reste en minuscule.
lower()
Met les caractères de la chaîne courante en minuscule.
upper()
Met les caractères de la chaîne courante en majuscule.
swapcase()
Transforme majuscule en minuscule, et inversement.
ljust(int)
Complète la chaîne de caractères avec des espaces, jusqu’à ce qu’elle ait pour longueur int (ne fait rien si la chaîne est déjà plus grande.)
lstrip(str)
Si str est en tête de la chaîne courante, le supprime.

Dans les deux précédentes méthodes, on peut remplacer l par r, pour effectuer les actions non pas à gauche, mais à droite.

Exemple de modifications

Illustrons certaines des méthodes précédentes :

  >>> 'abs'.replace('s','c')
  'abc'
  >>> 'qAd'.lstrip('A')
  'qAd'
  >>> 'qAd'.lstrip('qA')
  'd'

Tests sur une chaîne

Les méthodes

endswith(str)
Se termine par la chaîne str.
startswith(str)
Commence par la chaîne str.
isdigit()
Teste si la chaîne concernée est constituée de chiffres.
isalpha()
Teste si la chaîne concernée est constituée de lettres.
isalnum()
Teste si la chaîne concernée est constituée de caractères alphanumériques.
islower()
Teste si la chaîne concernée ne contient que des minuscules.
isupper()
Teste si la chaîne concernée ne contient que des majuscules.
isspace()
Teste si la chaîne concernée ne contient que des espaces.

Exemples de tests

Illustrons les méthodes précédentes :

  >>> 'toto'.endswith('o')
  True
  >>> 'azea'.islower()
  True

Divers

Les méthodes

count(str)
Compte le nombre d’occurences de str.
encode('utf8')
Encode la chaîne de caractères en utf8 (ou 'ascii', 'latin1', 'iso-8859-15').
join(str)
Insère la chaîne courante entre chaque caractère de str.
find(str)
Renvoie l'emplacement de la première occurence de str dans la chaîne courante, et -1 si str n’a pas été trouvé.
split(str)
Coupe la chaîne courante dès qu’il rencontre la chaîne str.
splitlines()
Correspond à split('\n').
zfill(int)
Si la chaîne courante est plus petite que int, on place des 0 en début de chaîne jusqu’à obtenir la longueur souhaitée.

Exemples

Illustrons les méthodes précédentes :

  >>> 'aze'.join('xwc')
  'xazewazec'
  >>> 'abs'.find('s')
  2
  >>> 'q d ez zzz'.split(' ')
  ['q', 'd', 'ez', 'zzz']

Page Actions

Recent Changes

Group & Page

Back Links