Supports de cours Pilot Systems
 
You are here: Home Cours à l'INSIA Cours de Python à l'INSIA, pour ING1 et ING2SRT Correction du TP5
Document Actions

Correction du TP5

by gael last modified 2008-05-28 11:11

Introduction

Cette correction du TP5 est faite de manière incrémentale. Elle prend quelques libertés avec l'énoncé exact du TP5, pour préparer le TP6. Ce document ne contient qu'un plan rapide de la correction, qui sera faite en temps réel.

La correction du TP5 lui-même

  1. Création d'une pile simple.
  2. Opérateurs arithmétiques simples.
  3. La fonction tokenize.
  4. La fonction rpn (nommée eval dans l'énoncé).

Quelques améliorations

  1. Simplification: utilisation de la fonction apply_op et du module Python operator, par exemple op_add devient :
        def op_add(self):
            return self.apply_op(operator.__add__)
    
  2. Utilisation d'une table de hash pour les opérateurs, sans même passer par op_.
  3. Modification de tokenize pour utiliser la liste d'opérateurs en clé.
  4. Modification de rpn pour prendre en paramètres une chaine ou une liste.

Et pour les curieux

  1. Gestion du nombre d'arguments variables (attention, ça marche difficilement avec les operator.*, il faut ruser).
  2. Simplification: création d'une fonction stackify, op_add devient :
        op_add = stackify(operator.__add__)
    
  3. stackify est un décorateur.
  4. staticmethod pour tokenize.
Contactez-nous

01 44 53 05 55

 
Plan du site
Sites
  © 1999-2008 Pilot Systems - Powered by Plone 9, rue Desargues, 75011 Paris
France — 01 44 53 05 55