GLO-1901 Introduction à la programmation avec Python

publicité
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
Téléchargement