Bonnes pratiques de programmation Voici quelques conseils pratiques pour rendre vos programmes plus lisibles, à la fois pour toute personne amenée à l’utiliser (collègue, ou dans l’immédiat, professeur), et à la fois pour vous-même : un programme clair sera plus simple à corriger ou améliorer, et à reprendre lors du TP suivant. En pratique, les programmes peu clairs seront pénalisés dans les devoirs, et le professeur ne passera corriger lors des TP que les programmes un minimum expliqués. 1 Exemple Voici un programme python. Que calcule-t-il ? def f(a,b): x=0 y=a while y>=b: x+=1 y-=a return(x,y) Et maintenant celui-ci : def f(a,b): quotient=0 reste=a while reste >=b: reste-=a quotient+=1 # Tant qu’on peut retirer b dans le reste, on le fait # Et on augmente le quotient de 1 #On sort de la boucle lorsque le reste est <b : c’est alors le bon reste # de la division euclidienne. return(quotient, reste) En python, tout texte écrit après un # n’est pas lu par l’ordinateur. Il s’agit d’un "commentaire", il est destiné à expliqué le programme aux être humains amenés à le lire. On peut encore améliorer trois choses : le nom de la fonction elle-même, rajouter une aide, et signaler le fait que cet algorithme ne fonctionne que si a ≥ 0 et b > 0 ! Pour ce dernier point, nous allons d’une part l’écrire dans l’aide, et d’autre part vérifier que a ≥ 0 et b > 0, renvoyer une erreur sinon. L’aide s’indique au début de la fonction encadrée par trois paires de guillemets. Pour la vérification, utiliser : assert condition à vérifier , message d’erreur si la condition n’est pas vérifiée. def divisionEuclidienne(a,b): """a et b sont entier positifs, b doit être non nul. Le programme renvoie le quotient et le reste de la division euclidienne de a par b, sous la forme (quotient, reste)""" 1 assert b>0, "b n’est pas >0!" assert a>=0, "a n’est pas >=0!" quotient=0 reste=a while reste >=b: # tant qu’on peut retirer b dans le reste, on le fait reste-=a quotient+=1 # Et on augmente le quotient de 1 # On sort de la boucle lorsque le reste est <b : c’est alors le bon reste de la # division euclidienne. return(quotient, reste) Remarque: L’aide sera affichée lorsque l’utilisateur tapera help(divisionEuclidienne). Remarque: Ce programme est déjà inclus dans python : pour le quotient de la division euclidienne taper a//b et pour le reste a%b. Une remarque cependant : si vous avez besoin du quotient et du reste, le programme que nous venons de créer calcule les deux d’un coup ! Ce sera donc plus rapide que de faire le quotient, puis de recommencer les calculs pour le reste ! 2 Conseils généraux — — — — Écrire des commentaires, à signaler par des #. Donner des noms clairs aux variables et fonctions. Écrire l’aide des fonctions. Utiliser des assert si votre fonction ne marche pas pour n’importe quelle valeur d’entrée. 2