Maison >développement back-end >Tutoriel Python >Partagez dix choses à noter lors du développement de Python

Partagez dix choses à noter lors du développement de Python

高洛峰
高洛峰original
2017-03-28 15:50:091459parcourir

Qu'il s'agisse de développement python ou de développement de tout autre langage, si nous pouvons maîtriser quelques conseils et techniques utiles pendant le développement, cela améliorera certainement considérablement notre efficacité de développement. Aujourd'hui, l'éditeur et tout le monde Quoi. Je partage quelques erreurs courantes que les débutants commettent souvent lors de l'apprentissage du langage dans le développement Python. Jetons un coup d'œil.

">

Remarque : cet article suppose que nous utilisons tous Python 3

1. Compréhension de liste

Vous avez un list: 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 ainsi 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

Mais il existe une meilleure façon :

bag = [elem * 2 for elem in bag]

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

2. Parcourez la liste

Continuez avec la liste ci-dessus

Si possible, essayez d'éviter de faire cela :

bag = [1, 2, 3, 4, 5] 
for i in range(len(bag)): 
 print(bag[i])

Au lieu de cela, cela devrait ressembler à ceci :

bag = [1, 2, 3, 4, 5] 
for i in bag: 
 print(i)

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. pour cela, utilisez la fonction enumerate. Cela ressemble à ceci :

bag = [1, 2, 3, 4, 5] 
for index, element in enumerate(bag): 
 print(index, element)

C'est très intuitif et clair 3. Échange d'éléments<. java ou le>langage C

vers Python, vous êtes peut-être habitué à ça :

Mais Python fournit une méthode plus naturelle et meilleure

a = 5 
b = 10
# 交换 a 和 b
tmp = a 
a = b 
b = tmp
N'est-ce pas ! C'est beau ?

4. Liste d'initialisation
a = 5 
b = 10 
# 交换a 和 b
a, b = b, a

Si vous voulez une liste de 10

entiers

0, vous pourriez La première chose qui vous vient à l'esprit est :

Essayons une autre méthode :

bag = [] 
for _ in range(10): 
 bag.append(0)
Regardez, comme c'est élégant

Remarque : si votre liste contient une liste, cela produira des résultats superficiels. Copiez. 🎜>
bag = [0] * 10
Par exemple :

Oups ! Toutes les listes sont modifiées, et nous voulons juste changer la première :

Rappelez-vous également :
bag_of_bags = [[0]] * 5 # [[0], [0], [0], [0], [0]] 
bag_of_bags[0][0] = 1 # [[1], [1], [1], [1], [1]]
«L'optimisation prématurée est la racine de tous les maux»

Demandez-vous : l'initialisation d'une liste est-elle nécessaire >5. Construct

String

bag_of_bags = [[0] for _ in range(5)] 
# [[0], [0], [0], [0], [0]]
bag_of_bags[0][0] = 1 
# [[1], [0], [0], [0], [0]]
Vous aurez souvent besoin d'imprimer des chaînes ? . S'il y a beaucoup de

variables

, évitez ce qui suit :


Euh, à quel point cela a-t-il l'air compliqué. Vous pouvez utiliser une méthode agréable et concise à la place, .format :

Bien mieux ! 6. Retourner des tuples (tuples)

Python vous permet de renvoyer plusieurs éléments dans une fonction, ce qui facilite la vie. Cependant, il existe des erreurs courantes comme celle-ci. décompression des tuples<.>:

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)
Ceci n'est pas nécessaire, vous pouvez le remplacer par ceci :

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

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)

C'est tellement efficace !

7. Accédez aux dicts (dictionnaires)

Vous écrirez souvent clé, paire (clé, valeur) dans les dictés.

def binary(): 
 return 0, 1
result = binary() 
zero = result[0] 
one = result[1]
Si vous essayez d'accéder à une clé qui n'existe pas dans le dict, vous pourriez être tenté de le faire pour éviter une KeyError :

def binary(): 
 return 0, 1
zero, one = binary()
Cependant, utiliser get() est plus efficace Bonne idée.

zero, _ = binary()
Bien sûr, vous pouvez également utiliser setdefault à la place.

Cela utilise également une méthode plus simple mais plus coûteuse :

Vous pouvez également utiliser la dérivation dict.

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

8 Utilisation des bibliothèques
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))

Les bibliothèques existantes doivent simplement être importées et vous pouvez faire ce que vous voulez vraiment.

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)))
Toujours en parlant de l'exemple précédent, nous construisons une fonction pour compter le nombre de fois qu'un nombre apparaît dans la liste. Eh bien, il existe déjà une bibliothèque capable de faire une telle chose.

Quelques raisons d'utiliser la bibliothèque :

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)))
1. Le code est correct et testé.

2. Leur algorithme peut être optimal, donc il peut fonctionner plus rapidement.
countr = {num: bag.count(num) for num in bag}

3. Abstraction : Elles sont claires et bien documentées, et vous pouvez vous concentrer sur celles qui n'ont pas encore été mises en œuvre.

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

9. Découper/avancer dans une liste

Vous pouvez spécifier le point de départ et le point d'arrêt, comme cette liste [start:stop:step].

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]))
On retire les 5 premiers éléments de la liste :

C'est du découpage, on précise 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 ?

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

Si vous vouliez opérer sur des intervalles dans une liste, vous pourriez faire ceci :

Mais vous devriez le faire comme ceci :

C'est une liste intervient. list[::2] signifie parcourir la liste et supprimer un élément en deux étapes.
bag = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 
for elem in bag[:5]: 
 print(elem)

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

10. Touche Tab ou touche espace

À long terme, mélanger les tabulations et les espaces provoquera 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 du code. De cette façon, vous pouvez choisir le nombre d'espaces à utiliser comme tabulations. La plupart des utilisateurs de Python utilisent 4 espaces.

Résumé

Ce qui précède est un résumé des conseils auxquels vous devez prêter attention dans le développement de Python. J'espère que cela sera utile à tout le monde dans l'apprentissage et l'utilisation de Python. vous pouvez laisser un message pour communiquer.

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:
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