Écrire du code fonctionnel ne suffit pas toujours; vous devriez essayer d'écrire du code bien structuré et facile à comprendre également. Un code propre facilitera la maintenance de votre logiciel, pour vous et pour les autres.
Python possède de nombreuses fonctionnalités et fonctions qui peuvent vous aider à écrire du code plus propre. Voici quelques-uns des meilleurs.
1. Automatisez la fermeture des ressources avec Context Manager
La fermeture manuelle des ressources peut être gênante lorsque votre code interagit avec de nombreuses ressources. Vous pourriez oublier de fermer une ressource. Cela fait que votre programme utilise les ressources système de manière inefficace, ce qui peut entraîner une fuite de mémoire.
Ce code ouvre un fichier, puis le ferme manuellement :
fichier = ouvrir('test.txt', 'r')
file_contents = file.read()
fichier.close()
mots = file_contents.split(' ')
word_count = len (mots)
imprimer (word_count)
Vous pouvez automatiser la fermeture du fichier à l'aide d'un gestionnaire de contexte. Les gestionnaires de contexte gèrent les ressources pour vous, vous n'avez donc pas à vous rappeler de les gérer manuellement. Utilisez le avec instruction pour créer un contexte pour gérer une ressource :
avec ouvrir('test.txt', 'r') comme déposer:
file_contents = file.read()
mots = file_contents.split(' ')
word_count = len (mots)
imprimer (word_count)
Le code de ce bloc s'exécute dans le contexte de l'objet fichier qui ouvrir Retour. Python ferme automatiquement ce fichier lorsque le code quitte ce contexte, même si une exception se produit.
2. Écrire des instructions conditionnelles plus propres
Vous pourriez vous retrouver à écrire beaucoup de code inutile lorsque vous traitez avec instructions if-else. Python a des opérateurs ternaires qui vous aideront à écrire des instructions plus compactes. Le bloc de code ci-dessous montre une instruction if-else normale.
état = Vrai
si condition:
x = 1
autre:
x = 0
imprimer (x)
Vous pouvez réécrire ce code à l'aide d'un opérateur ternaire qui vous permet d'écrire la condition sur une seule ligne de code.
état = Vrai
x = 1si condition autre0
imprimer (x)
Il est important de noter que vous devez utiliser des opérateurs ternaires lors de la mise en œuvre d'une logique simple. Dans une logique plus complexe et des instructions conditionnelles imbriquées, l'opérateur ternaire peut devenir difficile à comprendre.
3. Suivi des éléments avec la fonction d'énumération
Lors de l'itération sur une liste Python, vous pouvez accéder à l'index de l'élément actuel de deux manières. Une façon consiste à utiliser la boucle for traditionnelle. Cela fonctionne bien, mais le code n'est pas aussi propre qu'il pourrait l'être. Il vous oblige également à initialiser l'index manuellement.
voitures = ["Bugatti", 'Mercedes', "Toyota"]
indice = 0
pour voiture dans voitures:
impression (index, voiture)
indice += 1
L'autre méthode consiste à utiliser la fonction d'énumération intégrée de Python. Cela vous permettra d'accéder à l'index et à la valeur correspondante dans la liste lors de la boucle.
voitures = ["Bugatti", 'Mercedes', "Toyota"]
pour index, voiture dans énumérer (voitures):
impression (index, voiture)
Vous n'avez plus besoin de suivre l'index manuellement.
4. Boucler sur plusieurs listes avec la fonction Zip
Vous pouvez également utiliser la fonction énumérer pour parcourir plusieurs listes à la fois. Obtenez l'index de la première liste, puis utilisez-le pour accéder aux valeurs correspondantes dans d'autres listes.
noms_anglais = ['nourriture', 'eau', 'voiture']
noms_espagnols = ['alimentaire', 'agua', 'auto']
pour index, nom dans énumérer (noms_anglais):
espagnol = noms_espagnols [index]
imprimer (F' {nom} en espagnol c'est {Espagnol}')
Cela fonctionne bien, mais vous devrez écrire beaucoup de code inutile si le nombre de listes augmente. Pour écrire du code plus propre, vous pouvez utiliser la fonction zip et lui transmettre les noms de votre liste.
noms_anglais = ['nourriture', 'eau', 'voiture']
noms_espagnols = ['alimentaire', 'agua', 'auto']
pour anglais espagnol dans zip (noms_anglais, noms_espagnol) :
imprimer(F' {Anglais} en espagnol c'est {Espagnol}')
Vous devriez continuer à utiliser la fonction énumérer pour boucle sur une seule liste. Mais si vous parcourez plusieurs listes ensemble, pensez à utiliser la fonction zip.
Lors de la saisie d'informations sensibles, l'entrée ne doit pas être visible sous forme de texte brut à l'écran. La façon habituelle de prendre des entrées en Python est d'utiliser la fonction d'entrée :
nom d'utilisateur = entrée('Nom d'utilisateur: ')
mot de passe = entrée('Mot de passe: ')
imprimer('Se connecter...')
Cependant, la fonction de saisie rend le mot de passe visible sous forme de texte brut à l'écran lors de la saisie. Pour vous assurer que le mot de passe ne s'affiche pas à l'écran, vous devez plutôt utiliser la fonction getpass :
depuis getpass importer getpass
nom d'utilisateur = entrée('Nom d'utilisateur: ')
mot de passe = getpass('Mot de passe:')
imprimer('Se connecter...')
Le module getpass fait partie de la bibliothèque standard de Python, vous n'avez donc pas besoin de l'installer.
6. Rendre les grands nombres lisibles à l'aide d'espaces réservés de soulignement
Lorsque vous avez affaire à de grands nombres dans votre programme, ils peuvent être très difficiles à lire en un coup d'œil. Attribuer des nombres incorrects aux variables conduit à un programme défectueux et repérer cette erreur peut être très difficile.
num1 = 10000000000
num2 = 100000000
total = nombre1 + nombre2
impression (totale)
Vous pouvez réécrire le code ci-dessus en utilisant des traits de soulignement pour séparer des groupes de milliers, un moyen courant de rendre les grands nombres plus lisibles.
num1 = 10_000_000_000
num2 = 100_000_000
total = nombre1 + nombre2
imprimer(F'{total:,}')
La chaîne f dans la fonction d'impression sépare la sortie à l'aide du séparateur des milliers.
7. Utilisation de la fonction d'aide pour en savoir plus sur un module
La fonction d'aide est très importante en Python. Il vous permettra de savoir comment utiliser un module que vous avez installé. Pour l'utiliser, installez le module, puis lancez l'interpréteur Python dans un terminal et pointez sur le chemin où vous avez installé le module. Importez le module et passez enfin le nom du module à la fonction d'aide.
Pour découvrir les méthodes et les attributs que vous pouvez utiliser, remplacez la fonction help par la fonction dir.
La fonction dir renvoie les méthodes et les attributs pris en charge par le module, pas toute la documentation. Ceci est utile lorsque vous voulez avoir un aperçu de ce que fait le module.
Écrire du code Python plus propre
Python est un langage très diversifié. Comme avec tout autre langage, vous deviendrez meilleur à écrire du code Python plus propre au fil du temps.
Python a de nombreux modules et fonctions intégrés. Dans certains cas, vous pouvez écrire du code difficile à lire car vous ne connaissez pas l'existence d'une certaine fonction. Pour vous assurer d'être mieux informé, vous devriez lire plus d'articles sur la façon d'écrire un meilleur code.