Vous êtes sur la page 1sur 2

Fouad NAFIS Filière : MP/PSI/TSI

3 avril 2023 CPGE OMAR IBN ALKHATTAB MEKNES

50 erreurs à éviter en Programmation Python dans les concours

1. Python est sensible à la casse : la plupart des 10. Dans l’identificateur d’une variable (son nom), les
mots-clés s’écrivent en caractères minuscules (for, chiffres peuvent être utilisés mais pas au début du
while, if, else, elif, def, class, range, list, tuple, ...) nom (S1 et S2 mais pas 1S ou 2 S)
sauf certains mots (True, False, None) 11. return est une instruction qui ne peut pas être uti-
lisée à l’extérieur de def
12. break permet de sortir de la boucle en cours et non
d éf , Def , For , N =5 et n =8 sont
pas de toutes les boucles quant on est en présence de
WHILE , While , deux variables
boucles imbriquées
ELSE ne seront diff é rentes
pas reconnus 13. Dans une fonction l’instruction return arrête
immédiatement le travail de la fonction, donc inutile
d’ajouter des instructions après un return dans le
2. Vous devez utiliser les variables du programme même bloc
définies dans le texte. Ne les remplacer pas par vos
def MaFonction (A , B ):
propres variables.
....
3. Vous devez utiliser les données passées en argument ....
dans leur fonction sans aller chercher des variables return ...
globales non définies et sans les modifier en affectant ....
des valeurs non définies ;
4. Les structures (if, else, elif, for, while, def, class) se 14. Une signature d’une fonction (MaFonction(A, B) par
terminet par deux points ” :” exemple) doit être respectée quand elle est donnée
def MaFonction (A , B ):
if A > B : ....
.... ....
else :
.... et non pas

5. Il serait également souhaitable que les programmes


def MaFonction : def fction (X , Y ):
écrits soient sur une seule et même page pour en
.... ....
faciliter la lecture.
.... ....
6. Lorsqu’il est demandé dans le sujet d’écrire une suite
d’instructions, un script ou un programme, les cor-
recteurs n’attendent pas l’écriture d’une fonction ; 15. Pour comparer deux expressions utiliser les
7. Les notations informatiques doivent être respectées opérateurs de comparaison (== et non pas =, >=
dans l’écriture des codes (pas de caractère grecs, et non pas ⩾, <= et non pas ⩽, >, <, ! = et non
présence de l’opérateur × pour les multiplications, pas ̸=)
écrire ab au lieu de a/b etc...) ; 16. Pour explorer la variable C de type chaine de ca-
ractères à travers une boucle, utiliser for x in C et
8. L’indentation est une notion très importante.
non pas for x in ’C’
En python, pour exprimer qu’un bloc B appartient à
un bloc A on utilise l’indentation 17. Pour explorer une variable en le convertissant en
Ces blocs de code sont incorrectes chaine de caractères utiliser for x in str(C) et non
pas for x in ’C’
18. Dans une fonction on ne peut pas renvoyer le résultat
if A > B : def f (A , B ) : d’une affectation donc return x=1 n’a pas de signifi-
x =2 x =2 cation
else : y =2 19. Dans une affectation la partie gauche est toujours le
y =2 ... noms d’une variable et ne peut jamais être une ex-
pression (x=2 est correcte mais x*3=4 ne l’est pas)
if A > B : def f (A , B ) : 20. True/False et None sont des valeurs ayant un type
x =2 x =2 particulier pour renvoyer ces valeurs il faut écrire re-
else : y =2 turn True ou return False ou return None mais jamais
y =2 ... return ”False” ou return ”True” ou return ”None”
21. pour tester la différence entre deux expressions on
utilise l’opérateur ! = et non pas =!
9. Dans l’identificateur d’une variable (son nom), les 22. avant d’utiliser une variable, vérifier tout d’abord
symboles (’,”,%, espace, ...) ne sont pas autorisés qu’elles sont déjà identifiées
Programmation Python 1 fouadnafis@gmail.com - 06.75.38.39.48
Fouad NAFIS Filière : MP/PSI/TSI
23. N’utilisez jamais break après un return, cette 38. Faites attention aux noms des variables et des fonc-
dernière est suffisante et fera le travail demandé et tions donnés par l’énoncé. On ne doit généralement
plus pas les modifier
24. range est un itérateur générant des entiers qui ac- 39. Faite la différence entre une fonction qui effectue un
cepte comme paramètre des entiers et jamais une traitement et ne renvoie rien et une fonction qui doit
collection ou autre variable renvoyer le résultat calculer.
25. Les exemples données dans les énoncés des questions 40. Depuis quelques années, dans les matières scienti-
sont données pour initiation et ne doivent jamais être fiques, le premier exercice est très important. Don-
utilisés dans les réponses que vous donnez ner lui le temps nécessaire pour faire le maximum
26. Ne donnez jamais deux réponses différentes ou non des questions qu’il aborde. Ce sont généralement des
pour la même question sinon votre réponse sera classiques qui vous apporteront le 1/5 de la note fi-
considérée comme faute même si les deux versions nale ou plus facilement et rapidement
soient correctes 41. Une fonction prend des parenthèses toujours même si
27. Ne jamais nommer les blocs de code sauf si l’objet de utilisée sans paramètres : len(L), range(n), print()....
la question n’est pas le code lui même mais calculer et non pas len L, range n ou print par exemple
par exemple une complexité 42. range (n) génère des entiers ∈ [0, n − 1]
28. Quand dans la question on précise pas que la fonc- 43. range(a,b,c) génère des entiers ∈ [a, b[ avec un pas c
tion en question renvoie une valeur, cela veut dire > 0 et a < b
qu’il s’agit dans ce cas d’une procédure et non pas 44. range(a,b,c) génère des entiers ∈ [a, b[ avec un pas c
une fonction. C’est à dire qu’aucune valeur n’est ren- < 0 et a > b
voyée et l’instruction return ne doit pas être utilisée.
45. Quand une fonction renvoie un booléen, il faut l’ex-
29. Toute variable utilisée doit être identifiée avant son primer par return True ou return False et non
utilisation. pas return ”True” ou return ”False” qui renvoient
30. les bibliothèques sont importées généralement dans des chaines de caractères
une partie du concours et non pas dans toutes les 46. Quand un test condition if a.... est utilisé, un else :
parties sauf si il est clairement mentionnée. Donc si a=a n’a aucun sens. Ce cas veut dire tout simplement
vous compter utiliser un module dans une partie des que le else n’a pas sa place dans ce programme.
réponses où il n’est pas mentionnée que le module
47. Utilisez if...elif....elif....else plutôt qu’un enchaine-
est supposé importé alors il faut faire l’importation
ment de if séparées
manuellement
48. Lors d’un parcours d’une liste faites attention aux
31. Ne jamais donner deux réponses à la même question. bornes de range quand vous utilisez L[i+1], L[i-1] ou
Le correcteur ne fera pas le choix L[i]....Il faut s’assurer que ces éléments existent ! !
32. La partie gauche d’une affectation ne peut pas être 49. Une fonction qui ne renvoie rien ne peut jamais faire
une fonction ou une expression (len(L)=n ou n+1=5 l’objet d’une affectation et ne peut jamais être uti-
sont par exemple des affectation incorrectes) lisée dans une expression. Si f est la fonction définie
33. Ne jamais écrire une réponse incomplète puis la re- par exemple par :
faire sans le mentionner
de f ( n ) :
34. Utilisez les fonctions données par les questions de print ( n )
l’énoncé même si vous ne les avez pas fait au lieu
de refaire les mêmes instructions de ces fonctions et alors les instructions suivantes ne vont servir
courir un risque de répéter les même erreurs. généralement à rien
35. Toute variable utilisée doit être définie
x = f (5)
36. Ne jamais écrire des squelettes de fonction sans f (4) = 2 # cella - la est une erreur
rédiger leurs codes. ça ne vous rapportera rien.
37. le cahier des réponses qui vous est donné est très suf- 50. Quand on demande de calculer ou estimer la com-
fisant pour toutes les réponses du concours. Soignez plexité d’un programme, donner la classe de com-
alors votre copie en ajoutant des espaces suffisants plexité et n’essayer pas de calculer le coût. Cela ne
entre les réponses. Vous pouvez même commencer sera pas toujours facile à réaliser et peut conduire à
chaque partie dans une nouvelle feuille une mauvaise réponse

Programmation Python 2 fouadnafis@gmail.com - 06.75.38.39.48

Vous aimerez peut-être aussi