Maison développement back-end Tutoriel Python 10 choses à noter lors du développement de Python

10 choses à noter lors du développement de Python

Apr 29, 2017 pm 05:05 PM

Voici dix trucs et astuces utiles en Python. Certaines de ces erreurs sont courantes que commettent les débutants lors de l’apprentissage de la langue.

Remarque : supposons que nous utilisons tous Python 3

1. Compréhension de la liste

​Vous avez une liste : bag = [1, 2, 3, 4, 5]

Maintenant, vous voulez doubler tous les éléments pour que cela ressemble à ceci : [2, 4, 6, 8, 10]

La plupart des débutants le feront probablement en fonction de leur expérience linguistique antérieure

bag = [1, 2, 3, 4, 5]  
for i in range(len(bag)):  
    bag[i] = bag[i] * 2
Copier après la connexion

​Mais il existe une meilleure façon :

bag = [elem * 2 for elem in bag]
Copier après la connexion

Très simple, non ? C'est ce qu'on appelle une compréhension de liste Python.

Cliquez sur le didacticiel de Trey Hunner pour voir plus d'introduction à la compréhension des listes.

2. Parcourez la liste

Continuez avec la liste ci-dessus.

Évitez de faire cela si possible :

bag = [1, 2, 3, 4, 5]  
for i in range(len(bag)):  
    print(bag[i])
Copier après la connexion

Au lieu de cela, cela devrait être comme ceci :

bag = [1, 2, 3, 4, 5]  
for i in bag:  
    print(i)
Copier après la connexion

Si x est une liste, vous pouvez parcourir ses éléments. Dans la plupart des cas, vous n'avez pas besoin de l'index de chaque élément, mais si vous le devez, utilisez la fonction enumerate. Cela ressemble à ci-dessous :

bag = [1, 2, 3, 4, 5]  
for index, element in enumerate(bag):  
    print(index, element)
Copier après la connexion

Très intuitif et clair.

3. Échange d'éléments

Si vous passez du langage Java ou C à Python, vous êtes peut-être habitué à ceci :

a = 5  
b = 10

# 交换 a 和 b
tmp = a  
a = b  
b = tmp
Copier après la connexion

​Mais Python offre un moyen plus naturel et meilleur !

a = 5  
b = 10  
# 交换a 和 b
a, b = b, a
Copier après la connexion

Assez joli, non ?

4. Liste d'initialisation

Si vous voulez une liste de 10 entiers 0, vous pouvez d'abord penser à :

bag = []  
for _ in range(10):  
    bag.append(0)
Copier après la connexion

Essayons une autre manière :

bag = [0] * 10
Copier après la connexion

Regardez, comme c'est élégant.

Remarque : Si votre liste contient des listes, cela produira une copie superficielle.

Par exemple :

bag_of_bags = [[0]] * 5 # [[0], [0], [0], [0], [0]]  
bag_of_bags[0][0] = 1 # [[1], [1], [1], [1], [1]]
Copier après la connexion

Oups ! Toutes les listes sont modifiées et nous souhaitons uniquement modifier la première liste.

Changez-le :

bag_of_bags = [[0] for _ in range(5)]  
# [[0], [0], [0], [0], [0]]

bag_of_bags[0][0] = 1  
# [[1], [0], [0], [0], [0]]
Copier après la connexion

N'oubliez pas non plus :

« L'optimisation prématurée est la racine de tous les maux »
Demandez-vous si l’initialisation d’une liste est nécessaire ?

5. Construire la chaîne

Vous aurez souvent besoin d'imprimer des chaînes. S'il y a beaucoup de variables, évitez ce qui suit :

name = "Raymond"  
age = 22  
born_in = "Oakland, CA"  
string = "Hello my name is " + name + "and I'm " + str(age) + " years old. I was born in " + born_in + "."  
print(string)
Copier après la connexion

Euh, à quel point ça a l'air compliqué ? Vous pouvez plutôt utiliser une méthode agréable et concise, .format.

Faites ceci :

name = "Raymond"  
age = 22  
born_in = "Oakland, CA"  
string = "Hello my name is {0} and I'm {1} years old. I was born in {2}.".format(name, age, born_in) 
print(string)
Copier après la connexion

Beaucoup mieux !

6. Renvoyer les tuples

Python vous permet de renvoyer plusieurs éléments dans une fonction, ce qui vous simplifie la vie. Cependant, des erreurs courantes se produisent lors du déballage des tuples :

def binary():  
    return 0, 1

result = binary()  
zero = result[0]  
one = result[1]
Copier après la connexion

Ce n'est pas nécessaire, vous pouvez le changer par ceci :

def binary():  
    return 0, 1

zero, one = binary()
Copier après la connexion

Si vous avez besoin que tous les éléments soient renvoyés, utilisez un trait de soulignement_ :

zero, _ = binary()
Copier après la connexion

C'est tellement efficace !

7. Accéder aux dictés

Vous écrirez également souvent des clés et des paires (clés, valeurs) dans des dictionnaires.

Si vous essayez d'accéder à une clé qui n'existe pas dans le dict, vous souhaiterez peut-être éviter les erreurs KeyError en procédant comme suit :

countr = {}  
bag = [2, 3, 1, 2, 5, 6, 7, 9, 2, 7]  
for i in bag:  
    if i in countr:
        countr[i] += 1
    else:
        countr[i] = 1

for i in range(10):  
    if i in countr:
        print("Count of {}: {}".format(i, countr[i]))
    else:
        print("Count of {}: {}".format(i, 0))
Copier après la connexion

Cependant, utiliser get() est une meilleure solution.

countr = {}  
bag = [2, 3, 1, 2, 5, 6, 7, 9, 2, 7]  
for i in bag:  
    countr[i] = countr.get(i, 0) + 1

for i in range(10):  
    print("Count of {}: {}".format(i, countr.get(i, 0)))
Copier après la connexion

Bien sûr, vous pouvez également utiliser setdefault à la place.

C'est une méthode plus simple mais plus coûteuse :

bag = [2, 3, 1, 2, 5, 6, 7, 9, 2, 7]  
countr = dict([(num, bag.count(num)) for num in bag])

for i in range(10):  
    print("Count of {}: {}".format(i, countr.get(i, 0)))
Copier après la connexion

Vous pouvez également utiliser la dérivation dict.

countr = {num: bag.count(num) for num in bag}
Copier après la connexion

Ces deux méthodes sont coûteuses car elles parcourent la liste à chaque fois que count est appelé.

8. Utiliser la bibliothèque

Importez simplement les bibliothèques existantes et vous pouvez faire ce que vous voulez vraiment.

Toujours en parlant de l'exemple précédent, créons une fonction pour compter le nombre de fois qu'un nombre apparaît dans une liste. Eh bien, il existe déjà une bibliothèque capable de faire une telle chose.

from collections import Counter  
bag = [2, 3, 1, 2, 5, 6, 7, 9, 2, 7]  
countr = Counter(bag)

for i in range(10):  
    print("Count of {}: {}".format(i, countr[i]))
Copier après la connexion

Quelques raisons d'utiliser la bibliothèque :

  • Le code est correct et testé.


  • Leur algorithme peut être optimal et fonctionner plus rapidement.


  • Abstractions : elles sont claires et bien documentées, et vous pouvez vous concentrer sur ce qui n'a pas encore été mis en œuvre.


  • Enfin, tout est là, vous n'avez pas besoin de réinventer la roue.

9. Découper/parcourir la liste

Vous pouvez spécifier le point de départ et le point d'arrêt, comme cette liste[start:stop:step]. On retire les 5 premiers éléments de la liste :

bag = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]  
for elem in bag[:5]:  
    print(elem)
Copier après la connexion

Il s'agit d'un découpage. Nous spécifions que le point d'arrêt est 5, et 5 éléments seront retirés de la liste avant de s'arrêter.

Que faire des 5 derniers éléments ?

bag = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]  
for elem in bag[-5:]:  
    print(elem)
Copier après la connexion

Vous ne comprenez pas ? -5 signifie prendre 5 éléments à la fin de la liste.

Si vous souhaitez opérer sur les intervalles entre les éléments de la liste, vous pouvez faire ceci :

bag = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]  
for index, elem in enumerate(bag):  
    if index % 2 == 0:
        print(elem)
Copier après la connexion

​Mais tu devrais faire comme ça :

bag = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]  
for elem in bag[::2]:  
    print(elem)

# 或者用 ranges
bag = list(range(0,10,2))  
print(bag)
Copier après la connexion

C'est l'étape de la liste. list[::2] signifie parcourir la liste et supprimer un élément en deux étapes.

Vous pouvez utiliser list[::-1] pour créer une liste inversée sympa.

10. Touche de tabulation ou barre d'espace

À long terme, mélanger des tabulations et des espaces peut provoquer un désastre, et vous verrez IndentationError : indentation inattendue. Que vous choisissiez la touche de tabulation ou la barre d'espace, vous devez continuer à l'utiliser dans vos fichiers et projets.

L’une des raisons d’utiliser des espaces au lieu des tabulations est que les tabulations ne sont pas créées de la même manière dans tous les éditeurs. Selon l'éditeur utilisé, les tabulations peuvent être traitées comme des espaces de 2 à 8.

Vous pouvez également utiliser des espaces pour définir des tabulations lors de l'écriture de code. De cette façon, vous pouvez choisir le nombre d'espaces à utiliser comme tabulations. La plupart des utilisateurs de Python utilisent 4 espaces.

Texte original en anglais : La méthode Python : 10 conseils

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Notes de développement C++ : évitez les exceptions de pointeur nul dans le code C++ Notes de développement C++ : évitez les exceptions de pointeur nul dans le code C++ Nov 22, 2023 pm 02:38 PM

Dans le développement C++, l'exception de pointeur nul est une erreur courante, qui se produit souvent lorsque le pointeur n'est pas initialisé ou continue d'être utilisé après sa publication. Les exceptions de pointeur nul provoquent non seulement des plantages du programme, mais peuvent également entraîner des vulnérabilités de sécurité, une attention particulière est donc requise. Cet article explique comment éviter les exceptions de pointeur nul dans le code C++. Initialisation des variables de pointeur Les pointeurs en C++ doivent être initialisés avant utilisation. S'il n'est pas initialisé, le pointeur pointe vers une adresse mémoire aléatoire, ce qui peut provoquer une exception de pointeur nul. Pour initialiser un pointeur, pointez-le sur un

Wuthering WavesIntroduction aux points nécessitant une attention particulière lors des tests Wuthering WavesIntroduction aux points nécessitant une attention particulière lors des tests Mar 13, 2024 pm 08:13 PM

Pendant le test Mingchao, veuillez éviter les mises à niveau du système, les réinitialisations d'usine et le remplacement de pièces pour éviter que la perte d'informations ne provoque une connexion anormale au jeu. Rappel spécial : il n'y a pas de voie d'appel pendant la période de test, veuillez donc la manipuler avec prudence. Introduction aux précautions lors du test Mingchao : Ne pas mettre à niveau le système, restaurer les paramètres d'usine, remplacer les composants de l'équipement, etc. Notes : 1. Veuillez mettre à niveau le système avec soin pendant la période de test pour éviter la perte d'informations. 2. Si le système est mis à jour, cela peut entraîner un problème d'impossibilité de se connecter au jeu. 3. À ce stade, le canal d'appel n'a pas encore été ouvert. Il est conseillé aux joueurs de choisir s'ils souhaitent effectuer une mise à niveau, à leur propre discrétion. 4. Dans le même temps, un compte de jeu ne peut être utilisé qu’avec un seul appareil Android et un seul PC. 5. Il est recommandé d'attendre la fin du test avant de mettre à niveau le système de téléphonie mobile, de restaurer les paramètres d'usine ou de remplacer l'appareil.

Mar 22, 2024 pm 04:10 PM

Avec l'essor des plateformes de vidéos courtes, Douyin est devenu une partie intégrante de la vie quotidienne de nombreuses personnes. Diffuser en direct sur Douyin et interagir avec les fans sont le rêve de nombreux utilisateurs. Alors, comment démarrer une diffusion en direct sur Douyin pour la première fois ? 1. Comment démarrer une diffusion en direct sur Douyin pour la première fois ? 1. Préparation Pour démarrer la diffusion en direct, vous devez d'abord vous assurer que votre compte Douyin a terminé l'authentification par votre nom réel. Vous pouvez trouver le didacticiel d'authentification par nom réel dans « Moi » -> « Paramètres » -> « Compte et sécurité » dans l'application Douyin. Après avoir terminé l'authentification par nom réel, vous pouvez remplir les conditions de diffusion en direct et démarrer la diffusion en direct sur la plateforme Douyin. 2. Demandez une autorisation de diffusion en direct. Après avoir rempli les conditions de diffusion en direct, vous devez demander une autorisation de diffusion en direct. Ouvrez l'application Douyin, cliquez sur "Moi" -> "Creator Center" -> "Direct

Étapes et précautions d'utilisation du stockage local pour stocker des données Étapes et précautions d'utilisation du stockage local pour stocker des données Jan 11, 2024 pm 04:51 PM

Étapes et précautions d'utilisation de localStorage pour stocker des données Cet article présente principalement comment utiliser localStorage pour stocker des données et fournit des exemples de code pertinents. LocalStorage est un moyen de stocker des données dans le navigateur qui conserve les données locales sur l'ordinateur de l'utilisateur sans passer par un serveur. Voici les étapes et les éléments à prendre en compte lors de l'utilisation de localStorage pour stocker des données. Étape 1 : Vérifiez si le navigateur prend en charge LocalStorage

Étapes et précautions pour installer pip sans réseau Étapes et précautions pour installer pip sans réseau Jan 18, 2024 am 10:02 AM

Méthodes et précautions pour installer pip dans un environnement hors ligne L'installation de pip devient un défi dans un environnement hors ligne où le réseau n'est pas fluide. Dans cet article, nous présenterons plusieurs méthodes d'installation de pip dans un environnement hors ligne et fournirons des exemples de code spécifiques. Méthode 1 : utilisez le package d'installation hors ligne. Dans un environnement où vous pouvez vous connecter à Internet, utilisez la commande suivante pour télécharger le package d'installation pip à partir de la source officielle : pipdownloadpip Cette commande téléchargera automatiquement pip et ses packages dépendants à partir de la source officielle. source et enregistrez-le dans le répertoire courant. Déplacez le package compressé téléchargé vers un emplacement distant

Partage d'expérience de développement Python : comment effectuer le contrôle de version et la gestion des versions Partage d'expérience de développement Python : comment effectuer le contrôle de version et la gestion des versions Nov 23, 2023 am 08:36 AM

Partage d'expérience de développement Python : Comment effectuer le contrôle de version et la gestion des versions Introduction : Dans le processus de développement Python, le contrôle de version et la gestion des versions sont des liens très importants. Grâce au contrôle de version, nous pouvons facilement suivre les modifications du code, collaborer au développement, résoudre les conflits, etc. ; et la gestion des versions peut nous aider à organiser le processus de déploiement, de test et de publication du code pour garantir la qualité et la stabilité du code. Cet article partagera quelques expériences et pratiques de développement Python sous deux aspects : le contrôle de version et la gestion des versions. 1. Contrôle de version Contrôle de version

Notes de développement Python : évitez les problèmes courants de fuite de mémoire Notes de développement Python : évitez les problèmes courants de fuite de mémoire Nov 22, 2023 pm 01:43 PM

En tant que langage de programmation de haut niveau, Python présente les avantages d’être facile à apprendre, facile à utiliser et très efficace en développement, et devient de plus en plus populaire parmi les développeurs. Cependant, en raison de la manière dont son mécanisme de récupération de place est implémenté, Python est sujet aux fuites de mémoire lorsqu'il traite de grandes quantités de mémoire. Cet article présentera les éléments auxquels vous devez prêter attention lors du développement de Python sous trois aspects : les problèmes courants de fuite de mémoire, les causes des problèmes et les méthodes pour éviter les fuites de mémoire. 1. Problèmes courants de fuite de mémoire : les fuites de mémoire font référence à l'incapacité de libérer l'espace mémoire alloué par le programme pendant le fonctionnement.

Conseils de développement Python : Maîtriser et appliquer les principes de la programmation orientée objet Conseils de développement Python : Maîtriser et appliquer les principes de la programmation orientée objet Nov 22, 2023 pm 07:59 PM

Python est un langage de programmation puissant et flexible largement utilisé dans le développement de logiciels dans divers domaines. Dans le processus de développement Python, il est très important de maîtriser et d’appliquer les principes de la programmation orientée objet (POO). Cet article présentera quelques suggestions clés de développement Python pour aider les développeurs à mieux comprendre et appliquer les principes de la programmation orientée objet. Tout d'abord, l'idée centrale de la programmation orientée objet est de diviser le problème en une série d'objets et

See all articles