Heim >Backend-Entwicklung >Python-Tutorial >Teilen Sie zehn Dinge mit, die Sie bei der Entwicklung von Python beachten sollten

Teilen Sie zehn Dinge mit, die Sie bei der Entwicklung von Python beachten sollten

高洛峰
高洛峰Original
2017-03-28 15:50:091493Durchsuche

Ob es sich um die Python-Entwicklung oder die Entwicklung einer anderen Sprache handelt, wenn wir während der Entwicklung einige nützliche Tipps und Techniken beherrschen, wird dies unsere Entwicklungseffizienz heute, den Editor und alle anderen auf jeden Fall erheblich verbessern Ich teile einige häufige Fehler, die Anfänger beim Erlernen der Sprache in der Python-Entwicklung häufig machen.

">

Bitte beachten Sie: In diesem Artikel wird davon ausgegangen, dass wir alle Python 3 verwenden

1. Listenverständnis

Sie haben ein list: bag = [1, 2, 3, 4, 5]

Jetzt möchten Sie alle Elemente verdoppeln, sodass es so aussieht: [2, 4, 6 , 8, 10]

Die meisten Anfänger werden es aufgrund ihrer bisherigen Spracherfahrung wahrscheinlich so machen

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

Aber es gibt einen besseren Weg:

bag = [elem * 2 for elem in bag]

Ganz einfach, oder? Dies wird als Python-Listenverständnis bezeichnet.

2. Durchlaufen Sie die Liste

Fahren Sie mit der obigen Liste fort

Vermeiden Sie dies nach Möglichkeit:

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

Stattdessen sollte es so aussehen:

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

Wenn x eine Liste ist, können Sie über ihre Elemente iterieren. In den meisten Fällen benötigen Sie nicht den Index jedes Elements, aber wenn Sie müssen Verwenden Sie dazu die Aufzählungsfunktion. Sie sieht so aus:

bag = [1, 2, 3, 4, 5] 
for index, element in enumerate(bag): 
 print(index, element)
Es ist sehr intuitiv und klar. 3. Elementaustausch

Java oder

C-Sprache

zu Python, Sie sind vielleicht daran gewöhnt:

Aber Python bietet eine natürlichere und bessere Methode

a = 5 
b = 10
# 交换 a 和 b
tmp = a 
a = b 
b = tmp

Ist nicht so! Ist es nicht schön genug?

a = 5 
b = 10 
# 交换a 和 b
a, b = b, a
4. Initialisierungsliste

Wenn Sie eine Liste mit 10

Ganzzahlen

0 möchten, fällt Ihnen vielleicht als Erstes Folgendes ein:

Versuchen wir es anders:

bag = [] 
for _ in range(10): 
 bag.append(0)

Sehen Sie, wie elegant es ist

bag = [0] * 10
Hinweis: Wenn Ihre Liste eine Liste enthält, führt dies zu oberflächlichen Ergebnissen.

Zum Beispiel:

Ups! Alle Listen wurden geändert, und wir möchten nur die erste ändern:

bag_of_bags = [[0]] * 5 # [[0], [0], [0], [0], [0]] 
bag_of_bags[0][0] = 1 # [[1], [1], [1], [1], [1]]

Denken Sie auch daran:

„Vorzeitige Optimierung ist die Wurzel allen Übels“

Fragen Sie sich, ist das Initialisieren einer Liste notwendig? >5. Konstrukt
bag_of_bags = [[0] for _ in range(5)] 
# [[0], [0], [0], [0], [0]]
bag_of_bags[0][0] = 1 
# [[1], [0], [0], [0], [0]]

Sie müssen oft drucken Wenn es viele

Variablen
gibt, vermeiden Sie Folgendes:

Ähm, wie chaotisch sieht das stattdessen aus? .format:

Viel besser! Python ermöglicht die Rückgabe mehrerer Elemente in einer Funktion, was das Leben jedoch

häufig macht beim Entpacken von Tupeln<.>:
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)

Dies ist nicht erforderlich, Sie können es wie folgt ändern:

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)
Wenn alle Elemente zurückgegeben werden sollen, verwenden Sie einen Unterstrich_ :

Es ist so effizient!

7. Zugriff auf Diktate (Wörterbücher) Sie werden auch oft

Schlüssel
def binary(): 
 return 0, 1
result = binary() 
zero = result[0] 
one = result[1]
, Paar (Schlüssel, Wert) zu Diktaten schreiben.

Wenn Sie versuchen, auf einen Schlüssel zuzugreifen, der nicht im Diktat vorhanden ist, könnten Sie versucht sein, dies zu tun, um einen KeyError zu vermeiden:
def binary(): 
 return 0, 1
zero, one = binary()

Die Verwendung von get() ist jedoch mehr effizient Gute Idee.
zero, _ = binary()

Natürlich können Sie stattdessen auch setdefault verwenden.

Hierbei wird auch eine einfachere, aber teurere Methode verwendet:

Sie können auch die Diktatableitung verwenden.

Diese beiden Methoden sind teuer, da sie die Liste bei jedem Aufruf von count durchlaufen.
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))

8 Bibliotheken verwenden

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)))
Vorhandene Bibliotheken müssen nur importiert werden und schon können Sie tun, was Sie wirklich wollen.

Apropos vorheriges Beispiel: Wir erstellen eine Funktion, um zu zählen, wie oft eine Zahl in der Liste erscheint. Nun, es gibt bereits eine Bibliothek, die so etwas kann.

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)))
Einige Gründe für die Nutzung der Bibliothek:

1. Der Code ist korrekt und getestet.
countr = {num: bag.count(num) for num in bag}

2. Ihr Algorithmus ist möglicherweise optimal, sodass er schneller ausgeführt werden kann.

3. Abstraktion: Sie sind klar und gut dokumentiert, und Sie können sich auf diejenigen konzentrieren, die noch nicht implementiert wurden.

4. Endlich ist alles da, Sie müssen das Rad nicht neu erfinden.

9. Slicing/Stepping in einer Liste

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]))
Sie können den Startpunkt und den Stopppunkt angeben, wie in dieser Liste[start:stop:step].

Wir entfernen die ersten 5 Elemente aus der Liste:

Das ist Slicing, wir legen den Stopppunkt bei 5 fest und vor dem Stoppen werden 5 Elemente aus der Liste entfernt .

Was tun mit den letzten 5 Elementen?

Verstehst du nicht? -5 bedeutet, dass 5 Elemente vom Ende der Liste übernommen werden.

Wenn Sie Intervalle in einer Liste bearbeiten möchten, könnten Sie Folgendes tun:

Aber Sie sollten es so machen:

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

Das ist Eine Liste tritt ein. list[::2] bedeutet, die Liste zu durchlaufen und ein Element in zwei Schritten zu entfernen.

Sie können list[::-1] verwenden, um eine coole Flip-Liste zu erstellen.

bag = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 
for elem in bag[-5:]: 
 print(elem)
10. Tab-Taste oder Leertaste

Auf lange Sicht führt das Mischen von Tabulatoren und Leerzeichen zu einer Katastrophe, und Sie werden die Meldung „IndentationError: unerwarteter Einzug“ sehen. Unabhängig davon, ob Sie die Tabulatortaste oder die Leertaste wählen, sollten Sie sie in Ihren Dateien und Projekten weiterhin verwenden.

Ein Grund für die Verwendung von Leerzeichen anstelle von Tabulatoren ist, dass Tabulatoren nicht in allen Editoren gleich sind. Abhängig vom verwendeten Editor können Tabulatoren als 2 bis 8 Leerzeichen behandelt werden.

Sie können beim Schreiben von Code auch Leerzeichen verwenden, um Tabulatoren zu definieren. Auf diese Weise können Sie auswählen, wie viele Leerzeichen als Tabulatoren verwendet werden sollen. Die meisten Python-Benutzer verwenden 4 Leerzeichen.

Zusammenfassung

Die oben genannten Tipps sollten Sie bei der Python-Entwicklung beachten. Ich hoffe, dass sie für alle beim Erlernen und Verwenden von Python hilfreich sind Hinterlassen Sie eine Nachricht, um zu kommunizieren.

Das obige ist der detaillierte Inhalt vonTeilen Sie zehn Dinge mit, die Sie bei der Entwicklung von Python beachten sollten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn