Noms des variables et des fonctions⚓︎
Choisissez des noms parlants⚓︎
Comparez ceci :
def p(a, b):
return 2*a+2*b
avec :
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 :
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 :
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
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).