17.12.2012 Views

Programmation PYTHON - Zenk - Security - Repository

Programmation PYTHON - Zenk - Security - Repository

Programmation PYTHON - Zenk - Security - Repository

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Exercices corrigés<br />

CHAPITRE 11<br />

L’utilisation d’une list comprehension rend plus compact le code nécessaire à la<br />

construction de CAESAR : une liste est formée avec les caractères décalés, puis la<br />

séquence reformée avec join().<br />

L’écriture explicite aurait été :<br />

Sans list comprehension<br />

# préparation du tableau de traduction<br />

def _rot13(car):<br />

new_pos = (letters.find(car) + 13) % len(letters)<br />

return letters[new_pos]<br />

CAESAR = []<br />

for car in letters:<br />

CAESAR.append(_rot13(car))<br />

CAESAR = ''.join(CAESAR)<br />

Extension<br />

Les caractères en dehors de la chaîne ascii_lowercase ne sont pas traités et renvoyés<br />

directement. Les caractères accentués sont donc laissés tels quels et une extension<br />

intéressante serait d’étendre la chaîne ascii_letters avec la plage des caractères<br />

ISO-8859-15 ou UTF8, n’en déplaise à César.<br />

Exercice 3 : transformer les adresses e-mails et les URL d’un texte en<br />

liens<br />

Description<br />

Le but de ce troisième exercice est de concevoir un algorithme concis de transformation<br />

de texte, chargé de remplacer toute occurrence d’e-mails et d’URL par son équivalent<br />

HTML.<br />

Par exemple :<br />

tarek@ziade.org<br />

devient<br />

tarek@ziade.org<br />

http://www.afpy.org<br />

devient<br />

http://www.afpy.org<br />

353

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!