Aller au contenu

Noms des variables et des fonctions⚓︎

Choisissez des noms parlants⚓︎

Comparez ceci :

🐍 Script Python
def p(a, b):
    return 2*a+2*b

avec :

🐍 Script Python
def perimetre(longueur, largeur):
    return 2*longueur + 2*largeur

la seconde version est quand même plus compréhensible, non ?

Concernant les noms des variables :

  • celles qui ne comportent qu'une lettre (i, j, k, etc.) sont en général réservées pour des entiers (exemple : compteur dans une boucle for) ;
  • évitez par ailleurs les lettres o ou l (ell minuscule) ou I (i majuscule) qui peuvent être confondues avec 0 ou 1 ;
  • en Python, utilisez des lettres miniscules et des _ (convention snake_case) pour les variables et des majuscules pour les constantes :
🐍 Script Python
annee = 2023
liste_de_courses = ["Beurre", "Pain", "Lait", "Salade"]
JOURS_SEMAINE = ["Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi", "Dimanche"]
CamelCase

Il existe d'autres conventions d'écriture, utilisées dans d'autres langages. En Python, le snake_case est donc utilisé sauf pour les noms de classes d'objets (programme de Terminale NSI) sont écrites par contre en CamelCase : les premières lettres en majuscule et pas d'underscore :

🐍 Script Python
class ChatDomestique:
    def __init__(self, couleur, race):
        self.couleur = couleur
        self.race = race
    ...

Un code pas trop cryptique⚓︎

En Python, il est assez simple d'écrire du code difficile à déchiffrer. Bien que cela puisse être satisfaisant pour l'ego, il est quand même conseillé d'expliciter le but de notre code.

Voici un exemple de fonction qui renvoie la moitié des nombres contenus dans une liste, quand ceux-ci sont pairs.

###

moitiepy-unddespy-undpairs = lambda nums: list(map(lambda i: i//2, bksl-nl filter(lambda i: not i%2, nums)))bksl-nlbksl-nlprint(moitiepy-unddespy-undpairs([21, 36, 12, 27, 35, 84]))bksl-nl

A

Z

et des versions un peu plus claires :

###

def moitiepy-unddespy-undpairs(nums):bksl-nl liste = []bksl-nl for i in nums:bksl-nl if i % 2 == 0:bksl-nl liste.append(i // 2)bksl-nl return listebksl-nlbksl-nlprint(moitiepy-unddespy-undpairs([21, 36, 12, 27, 35, 84]))bksl-nl

A

Z

ou en plus court avec une liste en compréhension :

###

def moitiepy-unddespy-undpairs(nums):bksl-nl return [i // 2 for i in nums if i % 2 == 0]bksl-nlbksl-nlprint(moitiepy-unddespy-undpairs([21, 36, 12, 27, 35, 84]))bksl-nl

A

Z

Source de cet exemple

Exercice 1

Rendez-vous à cette adresse et améliorez le code (les points d'interrogation donnent des indications et disparaissent quand une ligne a été corrigée).