Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
|
ens:dasi2015-2016:tpchaines [2016/01/06 13:58] admin Cordier Amelie () [Partie 1. Préparation de l'environnement de travail.] |
ens:dasi2015-2016:tpchaines [2016/01/06 14:21] (Version actuelle) admin Cordier Amelie () [Partie 4. La vengeance d'Edward] |
||
|---|---|---|---|
| Ligne 111: | Ligne 111: | ||
| ===== Partie 4. La vengeance d' | ===== Partie 4. La vengeance d' | ||
| - | Pour se venger de ce stupide administrateur système, Edward lui donne une énigme à résoudre. Il lui demande d' | + | Pour se venger de ce stupide administrateur système, Edward lui donne une énigme à résoudre. Il lui demande d' |
| Gunter, après avoir passé plusieurs heures à comprendre le problème (les énigmes, c'est pas son truc), écrit en deux temps trois mouvements l'algo qui répond au problème. | Gunter, après avoir passé plusieurs heures à comprendre le problème (les énigmes, c'est pas son truc), écrit en deux temps trois mouvements l'algo qui répond au problème. | ||
| Ligne 119: | Ligne 119: | ||
| Serez-vous plus malin que Gunter ? | Serez-vous plus malin que Gunter ? | ||
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| + | ===== Ressources ===== | ||
| + | <code python password.py> | ||
| + | # coding: utf-8 | ||
| + | def getNext(password): | ||
| + | """ | ||
| + | Série de tests exprimés en doctest | ||
| + | >>> | ||
| + | ' | ||
| + | >>> | ||
| + | ' | ||
| + | >>> | ||
| + | ' | ||
| + | """ | ||
| + | pwd = list(password) | ||
| + | found = False | ||
| + | i=len(pwd)-1 | ||
| + | |||
| + | while not found: | ||
| + | if pwd[i] < ' | ||
| + | | ||
| + | found = True | ||
| + | else: | ||
| + | i = i-1 | ||
| + | | ||
| + | return '' | ||
| + | |||
| + | |||
| + | |||
| + | # Grâce à ce fragment de code, si vous exécutez ce fichier, les tests doctests seront exécutés également. | ||
| + | # Si vous ne voulez plus que les tests s' | ||
| + | # Si vous préférez lancer vos tests à la main, commentez également les lignes, et utilisez " | ||
| + | if __name__ == " | ||
| + | import doctest | ||
| + | doctest.testmod() | ||
| + | </ | ||
| + | |||
| + | <code python test_password.py> | ||
| + | |||
| + | # coding: utf-8 | ||
| + | import unittest | ||
| + | import password as pwd | ||
| + | |||
| + | class TestPassword(unittest.TestCase): | ||
| + | |||
| + | def test_getNextNormal(self): | ||
| + | self.assertEqual(pwd.getNext(" | ||
| + | |||
| + | def test_getNextEndLine(self): | ||
| + | self.assertEqual(pwd.getNext(" | ||
| + | |||
| + | |||
| + | # Permet d' | ||
| + | unittest.main() | ||
| + | |||
| + | |||
| + | </ | ||
| //Ce TP est fortement inspiré des exercices du prodigieux projet Advent of Code. Merci à son créateur pour ces belles sources d' | //Ce TP est fortement inspiré des exercices du prodigieux projet Advent of Code. Merci à son créateur pour ces belles sources d' | ||