# coding: utf-8 minuscules = 'abcdefghijklmnopqrstuvwxyz' majuscules = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' def rotation(chaine, x): """ Effectue une rotation de x caractères vers la droite: >>> rotation('abcde', 2) 'cdeab' """ return chaine[x:] + chaine[:x] def index(c, chaine): """ Trouve l'index de c dans la chaine: >>> index('n', 'bonjour') 2 """ for i in range(len(chaine)): if (c == chaine[i]): return i return -1 def chiffre_minuscules(chaine, x): """ Chiffre une chaîne composée de minuscules >>> chiffre_minuscules('bonjour', 3) 'erqmrxu' """ r = rotation(minuscules, x) resultat = '' for lettre in chaine: resultat = resultat + r[index(lettre, minuscules)] return resultat def chiffre(chaine, x): """ Chiffre une chaîne quelconque >>> chiffre('Bonjour les amis!', 3) 'Erqmrxu ohv dplv!' """ r_min = rotation(minuscules, x) r_maj = rotation(majuscules, x) resultat = '' for lettre in chaine: if lettre in minuscules: resultat = resultat + r_min[index(lettre, minuscules)] elif lettre in majuscules: resultat = resultat + r_maj[index(lettre, majuscules)] else: resultat = resultat + lettre return resultat ############################################################################# # Programme principal ############################################################################# print(chiffre_minuscules('bonjour', 3)) print(chiffre('Bonjour les amis!', 3)) print(chiffre('Erqmrxu ohv dplv!', 23)) print(chiffre('Eudyr, yrxv dyhc ilql fhw hahuflfh!', 23))