Foire aux questions sur l'écriture de code Python


Une fois que vous commencez à écrire du code Python sérieusement, de nombreux pièges deviennent encore plus dangereux : il s'agit d'erreurs de code de base qui traversent les fonctionnalités du langage et qui affligent souvent les programmeurs inattentifs.


Commencer dans la première colonne

Assurez-vous de démarrer le code de niveau supérieur non imbriqué dans la première colonne la plus à gauche. Cela inclut le code qui n'est pas imbriqué dans les fichiers de module et le code qui n'est pas imbriqué dans l'invite interactive. Python utilise l'indentation pour distinguer les blocs de code imbriqués, de sorte que les espaces à gauche de votre code représentent des blocs de code imbriqués. À l'exception de l'indentation, les espaces sont généralement ignorés.


N'écrivez pas de code C en Python

Voici quelques conseils de rappel pour les programmeurs C qui ne sont pas familiers avec Python :

  • Lorsque vous testez des conditions dans if et while, ne tapez pas de parenthèses (par exemple if (X ==1) :). Cela ne fait pas de mal d'ajouter des parenthèses si vous le souhaitez, c'est juste complètement redondant ici.
  • Ne terminez pas votre déclaration par un point-virgule. Techniquement, c'est légal en Python, mais cela ne sert à rien, sauf si vous souhaitez mettre plusieurs instructions sur la même ligne (par exemple, x=1 ; y=2 ; z=3).
  • N'intégrez pas d'instructions d'affectation (par exemple while ((x=next() != NULL)) dans le test conditionnel d'une boucle while. En Python, les instructions ne peuvent pas apparaître là où une expression est requise, et une instruction d'affectation n'est pas une expression.

N'oubliez pas les deux-points

C'est l'erreur la plus courante que font les programmeurs débutants : n'oubliez pas d'ajouter des deux-points à la fin de l'instruction de départ d'une instruction composée (la première ligne de if, while, for , etc.) deux points : ". Vous pourriez l’oublier au début, mais cela deviendra bientôt une habitude subconsciente. 75 % des élèves de la classe s’en souviennent le même jour.

Initialisation des variables

En Python, un nom dans une expression ne peut pas être utilisé tant qu'une valeur ne lui a pas été attribuée. Ceci est intentionnel : cela évite certaines erreurs de frappe et évite également les questions sur le type par défaut (0, Aucun, "", [], ?). Pensez à initialiser le compteur à 0, la liste à [], etc.

Indentation cohérente

Évitez de mélanger des tabulations et des espaces pour l'indentation dans le même bloc de code, à moins que vous ne sachiez comment le système exécutant votre code gère les tabulations. Sinon, les indentations qui ressemblent à des tabulations dans votre éditeur pourraient ressembler à des espaces pour Python. Pour être prudent, indentez chaque bloc de code avec soit toutes les tabulations, soit tous les espaces ; le montant dépend de vous.

Utilisez des parenthèses lors de l'appel de fonctions

Qu'une fonction nécessite ou non des paramètres, vous devez ajouter une paire de parenthèses pour l'appeler. Autrement dit, utilisez function(), pas function. Les fonctions Python sont simplement des objets dotés de fonctions spéciales (appels), et les appels sont déclenchés à l'aide de parenthèses. Comme tous les objets, ils peuvent être affectés à des variables et utilisés indirectement : x=function:x().
Dans la formation Python, de telles erreurs se produisent souvent lors des opérations sur les fichiers. Il est courant de voir des débutants utiliser file.close pour clôturer un problème, plutôt que d'utiliser file.close(). Parce qu'il est légal en Python de référencer une fonction sans l'appeler, l'opération sans parenthèses (file.close) réussit silencieusement, mais ne ferme pas le fichier !

N'utilisez pas d'expressions ou de chemins lors de l'importation

Utilisez le chemin du dossier ou l'extension du fichier dans la ligne de commande système, mais ne l'utilisez pas dans l'instruction d'importation. Autrement dit, utilisez import mod au lieu de import mod.py ou import dir/mod.py. En réalité, c’est probablement la deuxième plus grosse erreur commise par les débutants. Étant donné que les modules auront des suffixes autres que .py (par exemple, .pyc), forcer un certain suffixe n'est pas seulement agrammatical, mais également dénué de sens.
Le format du chemin du répertoire dépendant du système provient des paramètres du chemin de recherche de votre module, et non de l'instruction d'importation. Vous pouvez utiliser des points dans les noms de fichiers pour pointer vers des sous-répertoires du package (par exemple, import dir1.dir2.mod), mais le répertoire le plus à gauche doit être trouvé via le chemin de recherche du module, et il n'y a pas d'autre format de chemin dans l'importation. L'instruction incorrecte import mod.py est considérée par Python comme étant enregistrée dans un package. Il charge d'abord un module mod, puis essaie de trouver le module appelé py dans un répertoire appelé mod. Au final, il se peut qu'il ne trouve rien. Une série de messages d'erreur déroutants sont signalés.