Nous allons dans ce tutorial apprendre à présenter un code de la façon la plus propre, je ne prétends pas tout savoir de la présentation des codes, toute suggestion sera la bienvenue. Ce tutorial est relativement court, mais, il sera peut être enrichi par la suite
Nous allons partir d’une fonction booléenne Python qui permet de savoir si un nombre est premier ou non.
Au départ cette fonction n’est pas bien présentée, la voici
def premier(a):
r=int(a**(0.5))+1
s=True
i=1
if a==1:
s=False
elif a%2==0 and a<>2:
s=False
while 2*i+1 <r+1 and s==True :
if a%(2*i+1)==0:
s=False
return(s)
La première chose à faire est de rendre le code plus lisible en donnant un nom explicite à chaque variable, par exemple, j’appelle compteur la variable I, j’appelle estPremier la variable s.
Pour nommer les variables, les constantes sont écrites en majuscule, les mots sont séparés par des _ par exemple RACINE_DE_DEUX, les variables sont écrites en minuscules, les mots sont séparés par des majuscules estPremier Ce qui donnera
def premier(nombreEntre):
critereArret=int(nombreEntre**(0.5))+1
estPremier=True
compteur=1
if nombreEntre==1:
estPremier=False
elif nombreEntre%2==0 and nombreEntre<>2:
estPremier=False
while 2*compteur+1 <=critereArret and estPremier==True :
if nombreEntre%(2*compteur+1)==0:
estPremier=False
return(estPremier)
Cette étape est très importante, elle rend le code plus lisible
Les commentaires servent eux aussi à rendre le code plus lisible, pour vous, votre code semble simple et vous pouvez vous dire qu’il se passe de commentaire, ce qui est toujours faux. Si vous reprenez votre code plus tard, vous ne comprendrez pas forcément ce que vous avez fait et les autres auront du mal à le comprendre, même si le code est facile.
Tout d’abord, avant chaque fonction, il faut écrire ce qu’elle fait, en une phrase, pour chaque paramètre entré et sortie, il faut le nommer, dire si c’est une entrée ou une sortie et quel est son rôle.
Puis dans le code, il faut expliquer chaque grande étape, il est important de commenter la ligne de code i a la ligne i-1, comme ca, quand quelqu’un lira le code il lira ce que le programme va faire puis, li verra le code qui lui semblera plus clair.
# Cette fonction booléenne retourne vrai si le nombre entré est premier
# Le paramètre nombreEntre est l’entier choisi par l’utilisateur, on va tester sa primalité
# La sortie estPremier est un booléen qui prend la valeur vrai si nombreEntre est premier
def premier(nombreEntre):
# Si un nombre est premier il possédera un diviseur plus petit que sa racine
critereArret=int(nombreEntre**(0.5))+1
# On initialise estPremier à Vrai
estPremier=True
compteur=1
if nombreEntre==1:
# 1 n’est pas un nombre premier
estPremier=False
elif nombreEntre%2==0 and nombreEntre<>2:
# Si nombreEntre n’est pas pair alors il n’est pas multiple d’un nombre pair
estPremier=False
# On ne va tester la primalité qu’avec les nombres impairs : 2*compteur+1
while 2*compteur+1 <=critereArret and estPremier==True :
# Si on trouve un diviseur de nombreEntre, nombreEntre n’est pas premier
if nombreEntre%(2*compteur+1)==0:
estPremier=False
return(estPremier)
Voilà, on a obtenu un code clair et compréhensible par tous. Nous pourrons noter que chaque commentaire ne dépasse pas une ligne, ce qui est important, le but n’est pas de surcharger le code. Si une explication est trop longue pour tenir sur une ligne, on peut l’écrire tout en bas de la page de code si elle n’est pas directement liée au codage. Par exemple, je pourrais expliquer pourquoi un nombre composé admet au moins un diviseur plus petit que sa racine en bas de la page de code, et préciser dans mes commentaires : voire bas de la page.
Voila, en espérant que ces conseils vous seront utiles, n’hésitez pas a me faire des remarques.