Présentation python : Épisode 3

Slides:



Advertisements
Présentations similaires
Developpement Process « Coding party !! » Tony Carnal Altran.
Advertisements

Séminaire national STMG des 17 et 18 janvier CNAM 1 Thème 3 : Accompagner la prise de décision Question 2 - Comment gérer la trésorerie pour faire.
Présentation python : Épisode 4 ● Les objets : héritage ● Introduction à l'héritage ● Un exemple illustrant l'héritage ● Détails sur l'appel de méthode.
Présentation python : Épisode 1 ● Introduction à Python ● Les types de base et leur manipulation ● Les structures de contrôle ● Les fonctions Étienne Loks.

1 Programmation Orientée Objet ● Qu'est-ce qu'un objet ● Collaboration des objets ● Les classes ● Relations entre les classes – “Utilise”, “Contient”,
SQL : 4 fonctions d'exploitation de SGBD SQL (Structured Query Language, traduisez Langage de requêtes structuré) est un langage informatique ayant pour.
Logiciel Assistant Gestion d’Événement Rémi Papillie (Chef d’équipe) Maxime Brodeur Xavier Pajani Gabriel Rolland David St-Jean.
1 Programmation en C++ C++ de base ● Programme C++ ● Variables, objets, types ● Types et opérations fondamentales ● Tests ● Boucles ● Pointeurs, références.
Présentation python : Épisode 4 ● Les objets : héritage ● Introduction à l'héritage ● Un exemple illustrant l'héritage ● Détails sur l'appel de méthode.
1 Programmation en C++ IO en C++/SL ● Standard Library ● Types, objets pour IO ● L'entrée de clavier ● Sortie à l'écran ● Fichiers.
Présentation python : Épisode 3 ● Comment programmer comme un gentilhomme ? ● Le style de code ou comment bien présenter ● Les test unitaires ou comment.
1 Bonnes Pratiques ● Indentation ● Présentation ● Initialisation des variables ● Conditions ● Gestion d'erreurs ● Conventions.
DIAGRAMME DE DEPLOIEMENT Exposé de: MBALLA MEKONGO Michèle MBOUNA FEUZE William SIEYADJEU Alex Lionel CHOPGWE Leonard NDUMATE Landry TIDJON Lionel.
Présentation python : Épisode 2
>>> Amphi Python
Google analytics.
Chapitre 1 nombres, chaînes de caractères, booléens, et VARIABLES
Session 1 6 mars 2017 Plateforme ICONICS Justine Guégan
Ecriture collaborative d’une dissertation en classe
Détection des erreurs.
SNMP - Comment calculer l'utilisation de la Bande passante
Ajouter le code dans une page html
Comprendre les valeurs
Session 1 31 mai 2017 Plateforme ICONICS Justine Guégan
Javadoc et débogueur Semaine 03 Version A16.
Bddictionnairique Phase 1
Activités algorithmiques
Réalisation d'agents de surveillance Zephir
Python for beginners Qu'est ce que Python
Cyber-Sphinx Séance 2.
Les interfaces en PHP.
Bonnes pratiques Orienté Objet et Java
Programmation en C++ Classes
Codage Indenter le code Limiter la portée des variables Traiter les erreurs en premier Utiliser le switch au delà de 3 tests en cascades Ne jamais utiliser.
Présentation des EJB Enterprise Java Beans.
Notion De Gestion De Bases De Données
Programmation en C++ C++ de base
Modélisation avec UML 2.0 Partie II Diagramme de classes.
Introduction aux langages formels
Présentation python : Épisode 3
Programmation Orientée Objet
Pourquoi étudier la statistique ?
Deuxième projet: Les théories du complot
Diagrammes UML 420-KE2-LG.
USER GUIDE : BASE DE DOCUMENTATION
Programmation Android Première application Android
Sascha BEELAARD – 19 avril 2012
Damien Givry 27/11/2018 Méthodologie Damien Givry
Langages de programmation TP11
03- Evaluation Access 2003 Cette évaluation comporte des QCM (1 seule réponse) et des Zones à déterminer dans des copies d’écran.
Bilan de projet pour [Nom du projet]
20 Données semi-structurées et XML
EPITECH 2009 UML EPITECH 2009
Introdution  Le test appartient à l'activité de Vérification et de Validation d'une application, qui consiste à déterminer si cette dernière a été développée.
Un Mécanisme d‘Adaptation Guidé par le Contexte en Utilisant une Représentation par Objets Manuele Kirsch Pinheiro Laboratoire LSR – IMAG, Équipe SIGMA.
Les exceptions Le mécanisme des exceptions est destiné à permettre aux fonctions profondes d'une bibliothèque de notifier la survenue d'une erreur aux.
Reconnaissance de formes: lettres/chiffres
Logiciel de présentation
Comment la faire ? Quand la faire ?
Compléments sur Python (EduPython)
PROGRAMMATION ET ENSEIGNEMENT
Formation « Utiliser un site Internet école »
Le langage C# : Partie 1.
INTERFACE ET POLYMORPHISME
Lecture/Écriture de fichiers (I/O)
Retour sur les interfaces
Jérôme CUTRONA PHP objet Jérôme CUTRONA 08:30:34 Programmation Web
Réflexion sur l’apprentissage
Python Nicolas THIBAULT
Transcription de la présentation:

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

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)

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

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)

Les exceptions : utilisation Mécanisme de gestion des erreurs try: 1/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..."

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

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”

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

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

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

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

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