chaine de caractère en python: String

la translation

je voulais vous présenter une fonction plutôt sympa de string dans python. Mise en situation : Je vous donne la phrase suivante :

egek guv wpg fgoq fg uvtkpi.ocmgvtcpu() swk guv wpg hqpevkqp rnwvqv uaorc

Puis je vous dit que pour la comprendre, il faut remplacer toutes les lettres par celle qui se situe deux rangs plus hauts, par exemple remplacer c par a, d par b... Il y a deux méthodes pour le faire. La bonne, qui consiste à faire un programme, et la mauvaise, qui consiste à le faire à la main. Heureusement, python va nous sortir de cette situation !

import string

#la fameuse phrase
c="egek guv wpg fgoq fg uvtkpi.ocmgvtcpu() swk guv wpg hqpevkqp rnwvqv uaorc"
#on défini un premier élément, qui sont les lettres de l'alphabet décalées de +2 rangs
first='cdefghijklmnopqrstuvwxyzab'
#on défini le second, plus facile
second='abcdefghijklmnopqrstuvwxyz'
#On crée une table qui va servir à la traduction avec string.maketrans()
table=string.maketrans(first, second)
#On traduit avec translate(table)
result=c.translate(table)
#on affiche le résultat
print result

fonction générale

  • chaine.upper() convertit en majuscule
  • chaine.lower() convertit en minuscule
  • chaine.capitalize() passe la première lettre de la chaîne en capitale
  • chaine.title() passe la première lettre de chaque mot de la chaîne en capitale
  • string.capwords(chaine) idem, mais le module doit être chargé
  • chaine.swapcase() transforme minuscules en majuscules et inversement
  • chaine.split() renvoie une liste de tous les mots (séparation: l’espace) d’une chaîne-phrase
  • chaine.split(‘*’) le séparateur peut être une chaîne autre qu’un espace
  • chaine.split(‘ ‘,n) on peut limiter le nombre de séparations effectuées
  • ‘ ‘.join(liste) concaténation d’une liste (ou tuple) de chaînes (le séparateur est ici un espace)
  • string.join(liste,’sep’) cette forme oblige à charger le module au préalable
  • chaine.startswith(‘pref’) renvoie True si la chaîne commence par le prefixe
  • chaine.endswith(‘suf’) renvoie True si la chaîne termine par le suffixe
  • chaine.strip() ôte les espaces en début et fin de chaîne
  • chaine.lstrip() / chaine.rstrip() ôtent les espaces en début / fin de chaîne
  • chaine.strip(‘car’) ôte les caractères précisés en début et fin de chaîne
  • chaine.ljust(n) remplit d’espaces à gauche pour que la chaîne fasse n caractères
  • chaine.rjust(n) remplit d’espaces à droite pour que la chaîne fasse n caractères
  • chaine.center(n) entoure la chaîne d’espaces pour qu’elle fasse n caractères
  • chaine.zfill(n) ajoute des 0 à gauche pour que la chaîne fasse n caractères
  • chaine.expandtabs(n) transforme les tabulations en n espaces (8 par défaut)
  • chaine.count(ssch,debut,fin) compte les occurrences de la sous-chaîne dans la chaîne, éventuellement entre deux positions
  • chaine.find(ssch) renvoie la position d’une sous-chaîne dans une chaîne (0 pour la première position, -1 si la sous-chaîne ne s’y trouve pas
  • chaine.find(ssch,debut,fin) renvoie la position d’une sous-chaine dans une chaine, en définissant les positions de début et de fin
  • chaine.rfind(ssch,debut,fin) pareil, mais en commençant par la fin
  • chaine.replace(ssch1,ssch2,n) remplace une sous-chaîne par une autre (éventuellement en limitant à n occurrences)