La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Présentation python : Épisode 3

Présentations similaires


Présentation au sujet: "Présentation python : Épisode 3"— Transcription de la présentation:

1 Présentation python : Épisode 3
Comment programmer comme un gentilhomme ? Le style de code ou comment bien présenter Les test unitaires ou comment être sûr de bien se comporter Les exceptions ou comment faire face à toutes les situations Un peu d'objet ou comment avoir la classe Étienne Loks et David Mentré - 25 février 2008

2 Les styles de code : pourquoi ?
def Range2List(TheRange): """ Turns octet range user input in python list""" TheRange=TheRange.split("-") return range(int(TheRange[0]),int(TheRange[1])+1) def octet_range_to_list(octet_range): """Turns an octet range into a python list Keywords arguments: octet_range – an octet range separed by a dash """ octet_range = octet_range.split("-") return range(int(octet_range[0]), int(octet_range[1]) + 1)

3 Les styles de codes Documents de référence : PEP 8 et PEP 257
Éléments à prendre en compte (entre autres) : indentation : 4 espaces longueur de ligne : 79 caractères espacement langue anglaise conventions de nommage

4 Les tests unitaires But : s'assurer du fonctionnement correct d'un bout de logiciel Modules spécifiques (unittest) mais peut se faire simplement Utilisation de assert def test_octet_range_to_list(): assert octet_range_to_list(”1-5”) == [1, 2, 3, 4, 5] assert octet_range_to_list(”1-300”) == range(1, 255)

5 Les exceptions : utilisation
Mécanisme de gestion des erreurs try: /0 except ZeroDivisionError: print ”Aïe, division par zéro !” Gros avantage : si on oublie de gérer l'erreur, elle n'est pas perdue Fonctionnement while True: try: x = int(raw_input("Please enter a number: ")) break except ValueError: print "Oups ! Nombre invalide. Essaye encore..."

6 Les exceptions : syntaxe
Il peut y avoir plusieurs exceptions import sys try: f = open('myfile.txt') s = f.readline() i = int(s.strip()) except IOError, (errno, strerror): print "I/O error(%s): %s" % (errno, strerror) except ValueError: print "Could not convert data to an integer." except: print "Unexpected error:", sys.exc_info()[0] raise

7 Les exceptions : style try... except
try: octet_range_to_list(”1”) except: print ”La conversion de la plage d'octet s'est mal déroulée” Toujours préciser l'exception attendue try: octet_range_to_list(”1”) except IndexError: print ”La saisie utilisateur n'est pas une plage d'octet conforme”

8 Bases de programmation objet
Un objet est une entité que l'on construit par instanciation à partir d'une classe (une « catégorie » ou un « type » d'objet) chaine = str(”Ma chaine”) class Dice: ”””Un dé à plusieurs faces””” mon_nouveau_de = Dice() un_autre_de = Dice() La classe est un espèce de « moule » Chaque « instance » est un gâteau produit par le moule

9 Bases de programmation objet : les attributs
Un objet dispose d'attributs attributs : informations dans l'objet, spécifiques à une instance class Dice: ”””Un dé à plusieurs faces””” def __init__(self): self.nombre_faces = 6 mon_nouveau_de = Dice() print mon_nouveau_de.nombre_faces class Dice: ”””Un dé à plusieurs faces””” def __init__(self, nombre_faces): self.nombre_faces = nombre_faces de_6_face = Dice(6) print de_6_face.nombre_faces piece = Dice(2) print piece.nombre_faces

10 Bases de programmation objet : les méthodes
Un objet dispose de méthodes (fonctions spécifiques à l'objet) import random class Dice: ”””Un dé à plusieurs faces””” def __init__(self, nombre_faces): self.nombre_faces = nombre_faces def rouler(self): ”””Faire rouler le dé””” return random.randint(1, self.nombre_faces) >>> de_6_face = Dice(6) >>> print de_6_face.rouler() 4 >>> print de_6_face.rouler() 2 >>> print de_6_face.rouler() 3 >>> print de_6_face.rouler() 6

11 Pourquoi les objets Bases pour programmer correctement et pour pouvoir programmer en équipe Un objet est une entitée autonome et opaque interface avec l'extérieur au travers des attributs et méthodes permet de changer l'intérieur de l'objet sans le dire à tout le monde ⇒ modularité et extensibilité Importance des notions de programmation objet : tout (ou presque) est objet en python

12 Conclusion Présentez bien votre code
ça facilite sa relecture par d'autres... ou vous même ;-) Faites des tests unitaires s'assurer qu'on a rien cassé en faisant des modifications Utilisez les exceptions mécanisme élégant de gestion des erreurs Apprendre les concepts objet ce qu'on a vu n'est qu'une première introduction


Télécharger ppt "Présentation python : Épisode 3"

Présentations similaires


Annonces Google