GLO-1901 Introduction à la programmation avec Python Normes de programmation Marc Parizeau (automne 2014) © Marc Parizeau, Département de génie électrique et de génie informatique É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 ✓ ipython notebook (début) ✓ Sublime text (milieu) ✓ Eclipse (fin) 2 GLO-1901 ⎯ Outils et normes de programmation 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/ 3 GLO-1901 ⎯ Outils et normes de programmation 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/ 4 GLO-1901 ⎯ Outils et normes de programmation • Encodage: UTF-8 • Identification de chaque fichier ✓ IDUL de l'auteur ✓ IDULs des co-équipiers (s'il y a lieu) • Longueur des lignes: ✓ 100 caractères max (de préférence 80) • 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 GLO-1901 ⎯ Outils et normes de programmation • Noms de fichier: ✓ Ils ont 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 est une majuscule ✓ le premier mot d'un nom de fonction est habituellement un verbe d'action ✓ par exemple: lirePoint, calculerAire, etc. GLO-1901 ⎯ Outils et normes de programmation • 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! • En général, toujours être cohérent (faire une même chose toujours de la même façon) GLO-1901 ⎯ Outils et normes de programmation #!/usr/bin/env python3! # -*- coding: utf-8 -*-! ! """ Description du module! """! __auteur__ = "IDUL"! __date__ = "aaaa-mm-jj"! __coequipiers__ = "IDUL", "IDUL" # mettre None si aucun coéquipier! ! # 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 GLO-1901 ⎯ Outils et normes de programmation 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 • Assurer-vous de maîtriser votre environnement, quel qu'il soit, d'ici la fin de la semaine prochaine! 9 GLO-1901 ⎯ Outils et normes de programmation Quiz • Sur quel(s) système(s) d'exploitation Python fonctionne-t-il? • Quelle est votre distribution préférée de Linux/MacOS X/Windows? • Quelles sont les différences principales entre Python 2 et 3? • Qu'est-ce que Mercurial? ✓ Dans quel langage est-il écrit? 10 GLO-1901 ⎯ Outils et normes de programmation