GLO-1900 Introduction à la programmation avec Python Outils et normes de programmation Marc Parizeau (automne 2010) Marc Parizeau, Département de génie électrique et de génie informatique
Systèmes d exploitation Python est un langage portable qui fonctionne sur toutes les plateformes Unix/Linux excellent choix si Linux est votre OS préféré, surtout ne rien changer! MacOS X excellent choix, mais nécessite du matériel Apple basé sur Unix Windows aucun problème particulier, mais Unix est mieux ;-) considérez la virtualisation de Linux 2
Virtualisation Plusieurs solutions de virtualisation sont disponibles sur toutes les plateformes Si votre OS est Windows et que vous voulez expérimenter avec Linux, je vous recommande d installer VirtualBox http://www.virtualbox.org/wiki/downloads Ensuite, télécharger une distribution de Linux, par exemple Ubuntu 10.04 en version 32 bits http://www.ubuntu.com/desktop/get-ubuntu/download Puis, installer Ubuntu dans VirtualBox en suivant les instructions à l écran VirtualBox vous demandera de lui fournir l image disque téléchargée à l étape précédente 3
Paramètres importants réservez au moins 512 Mo pour votre nouvel OS ceci suppose cependant que votre ordinateur possède au moins 2 Go que votre ordinateur est récent (p.ex. Core 2 duo+) n oubliez pas d installer les «guest additions» Si vous avez une machine peu puissante, votre expérience pourrait ne pas être idéale
Interpréteur Python Assurez-vous d avoir la version 3.1 ou supérieure Linux Ubuntu 10.04 vient avec Python 2.6.5 MacOS X 10.6 vient avec Python 2.6.1 Windows ne vient pas avec Python Si vous travaillez avec Windows, vous pouvez télécharger Python à l adresse suivante http://www.python.org/download/ choisissez la version la plus récente (3.1 ou +) 6
Python 3 vs Python 2? La version 3 du langage brise la compatibilité avec la version 2.x; un programme écrit en Python 2.x engendrera généralement des erreurs lorsqu'exécuté avec la version 3.x les changements ne sont pas majeurs, c'est toujours du Python, mais certains éléments syntaxiques ont été changés pour accroître la cohérence du langage il existe des outils de conversion automatique Nous sommes à la croisée des chemins; la version 2.x est encore très utilisée, mais en fin de vie; la version 3.x est stable, mais de nombreux développeurs n'ont pas encore porté leurs modules nous allons regarder vers l'avant et adopter sans hésiter la dernière version de l'interpréteur (3.1.2) 7
Éditeur de texte Outil important pour vous faciliter la vie Utilisez un éditeur qui connait le Python coloriage syntaxique indentation automatique complétage automatique De nombreuses alternatives existent sur toutes les plateformes Si vous n avez pas d éditeur «favori», je vous suggère IDLE vient avec l'interpréteur Python 8
Gestion du code source Un gestionnaire des versions de code source permet de préserver l'historique de tous fichiers de savoir quels changements ont été faits quand et par qui de revenir en arrière sur n'importe quel changement par exemple, sur une version stable précédente du logiciel de faciliter le travail en équipe Nous allons adopter Mercurial un gestionnaire de code source distribué écrit en Python http://mercurial.selenic.com/ 9
Normes de programmation Conventions que nous allons adopter pour les travaux pratiques pour améliorer la lisibilité du code pour une documentation automatique pour assimiler la façon pythonesque Nous allons nous inspirer du PEP #8 (Python Enhancement Proposals) http://www.python.org/dev/peps/pep-0008/ 10
Encodage: UTF-8 Identification de chaque fichier nom de l'auteur noms des co-équipiers (s'il y a lieu) Longueur des lignes: 79 caractères max Indentation: 4 espaces jamais de <tab> Commentaires: au début du fichier pour décrire le module/programme au début de chaque classe pour la documenter au début de chaque fonction pour la documenter ailleurs selon les circonstances
Noms de fichier: Ils sont tout en minuscules avec l'extension «.py» par exemple: tp1.py Noms de classe: ils débutent toujours par une majuscule; lorsque plusieurs mots sont assemblés pour former un identifieur plus descriptif, la première lettre de chacun d'entre eux est aussi une majuscule (voir «CamelCase» dans Wikipedia) par exemple: MaClasse, UneClasse, etc. Noms de fonction: ils débutent toujours par une minuscule; lorsque plusieurs mots sont assemblés pour former un identifieur plus descriptif, la première lettre des mots qui suivent le premier peut être une majuscule le premier mot d'un nom de fonction est habituellement un verbe d'action par exemple: lirepoint, calculeraire, etc.
Noms de variable: ils sont tout en minuscules choisir des noms significatifs par exemple: somme, aire, x, y, i, j, etc. Langue pour les identifieurs et les commentaires: en français ou en anglais mais pas les deux! aucun accent dans les identifieurs En général, toujours être cohérent (faire une même chose toujours de la même façon)
#!/usr/bin/env python # -*- coding: utf-8 -*- """ Description du module """ auteur = "Prénom Nom" date = "aaaa-mm-jj" coequipiers = "Coéquipier 1", "Coéquipier 2" # Importation des modules standards import this # Importation des modules tiers # Importation des modules locaux # Définition d'une classe en Python class MaClasse(object): """Description de la classe """ def init (self): """ Description du constructeur """ pass # Définition d'une fonction simple def creerfonction(): """Description de la fonction """ pass if name == " main ": # Placer ici le programme principal pass
Conclusion Python est un langage de programmation qui ne nécessite pas de travailler avec des outils compliqués un bon éditeur de texte suffit Tout est gratuit Vous pouvez travailler avec le système d'exploitation de votre choix, mais profitez de l'occasion pour expérimenter avec Linux Les processeurs modernes possèdent des instructions spéciales pour faciliter la virtualisation permet de tester nos programmes dans différents environnement sans être obligé de changer de machine ni de «rebooter» Assurer-vous de maîtriser votre environnement, quel qu'il soit, d'ici la fin de la semaine prochaine, car le premier TP est à rendre la semaine suivante! 15
Quiz Sur quel(s) système(s) d'exploitation Python fonctionne-t-il? Qu'est-ce que la virtualisation? Sur quel plateforme VirtualBox fonctionne-t-il? Quelle est votre distribution préférée de Linux? Quelles sont les différences principales entre Python 2 et 3? Qu'est-ce que Mercurial? Dans quel langage est-il écrit? 16