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.
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.
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)
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.
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.
Dans les deux précédentes méthodes, on peut remplacer l par r, pour effectuer les actions non pas à gauche, mais à droite.
Illustrons certaines des méthodes précédentes :
>>> 'abs'.replace('s','c') 'abc' >>> 'qAd'.lstrip('A') 'qAd' >>> 'qAd'.lstrip('qA') 'd'
Illustrons les méthodes précédentes :
>>> 'toto'.endswith('o') True >>> 'azea'.islower() True
Illustrons les méthodes précédentes :
>>> 'aze'.join('xwc') 'xazewazec' >>> 'abs'.find('s') 2 >>> 'q d ez zzz'.split(' ') ['q', 'd', 'ez', 'zzz']