Heim  >  Artikel  >  Backend-Entwicklung  >  10 Dinge, die Sie bei der Entwicklung von Python beachten sollten

10 Dinge, die Sie bei der Entwicklung von Python beachten sollten

巴扎黑
巴扎黑Original
2017-04-29 17:05:241497Durchsuche

Hier sind zehn nützliche Tipps und Tricks in Python. Einige davon sind häufige Fehler, die Anfänger beim Erlernen der Sprache machen.

Hinweis: Angenommen, wir verwenden alle Python 3

1. Listenverständnis

​Sie haben eine Liste: bag = [1, 2, 3, 4, 5]

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

Die meisten Anfänger werden dies wahrscheinlich aufgrund ihrer bisherigen Spracherfahrung tun

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.

Klicken Sie auf das Tutorial von Trey Hunner, um weitere Einführungen zum Listenverständnis zu erhalten.

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

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 nötig, verwenden Sie die Enumerate-Funktion. Es sieht wie folgt aus:

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

Sehr intuitiv und klar.

3. Elementaustausch

Wenn Sie von Java oder C auf Python umsteigen, sind Sie vielleicht daran gewöhnt:

a = 5  
b = 10

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

Aber Python bietet einen natürlicheren und besseren Weg!

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

Hübsch genug, oder?

4. Initialisierungsliste

Wenn Sie eine Liste mit 10 ganzen Zahlen 0 möchten, denken Sie vielleicht zuerst an:

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

Versuchen wir es anders:

bag = [0] * 10

Schauen Sie, wie elegant.

Hinweis: Wenn Ihre Liste Listen enthält, wird dadurch eine flache Kopie erstellt.

Zum Beispiel:

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

Hoppla! Alle Listen werden geändert, und wir möchten nur die erste Liste ändern.

Ändern Sie es:

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

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

Denken Sie auch daran:

„Vorzeitige Optimierung ist die Wurzel allen Übels“
Fragen Sie sich: Ist die Initialisierung einer Liste notwendig?

5. Konstruieren Sie die Zeichenfolge

Sie müssen häufig Zeichenfolgen drucken. Wenn viele Variablen vorhanden sind, vermeiden Sie Folgendes:

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)

Ähm, wie chaotisch sieht das aus? Sie können stattdessen eine nette und prägnante Methode verwenden, .format.

Tun Sie dies:

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)

Viel besser!

6. Tupel zurückgeben

Mit Python können Sie mehrere Elemente in einer Funktion zurückgeben, was das Leben einfacher macht. Beim Entpacken von Tupeln treten jedoch häufig Fehler auf:

def binary():  
    return 0, 1

result = binary()  
zero = result[0]  
one = result[1]

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

def binary():  
    return 0, 1

zero, one = binary()

Wenn alle Elemente zurückgegeben werden sollen, verwenden Sie einen Unterstrich_:

zero, _ = binary()

Es ist so effizient!

7. Zugriff auf Diktate

Sie werden auch häufig Schlüssel und Paare (Schlüssel, Werte) in Diktate schreiben.

Wenn Sie versuchen, auf einen Schlüssel zuzugreifen, der nicht im Diktat vorhanden ist, können Sie KeyError-Fehler vermeiden, indem Sie Folgendes tun:

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

Die Verwendung von get() ist jedoch eine bessere Möglichkeit.

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

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

Dies ist eine einfachere, aber teurere Methode:

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

Sie können auch die Diktatableitung verwenden.

countr = {num: bag.count(num) for num in bag}

Diese beiden Methoden sind teuer, da sie die Liste bei jedem Aufruf von count durchlaufen.

8. Bibliothek verwenden

Importieren Sie einfach vorhandene Bibliotheken und Sie können tun, was Sie wirklich wollen.

​Wenn wir noch über das vorherige Beispiel reden, bauen wir eine Funktion, um zu zählen, wie oft eine Zahl in einer Liste erscheint. Nun, es gibt bereits eine Bibliothek, die so etwas kann.

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]))

Einige Gründe für die Nutzung der Bibliothek:

  • Der Code ist korrekt und getestet.


  • Ihr Algorithmus ist möglicherweise optimal und läuft schneller.


  • Abstraktionen: Sie sind klar und gut dokumentiert, und Sie können sich auf das konzentrieren, was noch nicht implementiert wurde.


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

9. Slicing/Stepping in der Liste

Sie können den Startpunkt und den Stopppunkt angeben, wie in dieser Liste[start:stop:step]. Wir nehmen die ersten 5 Elemente aus der Liste heraus:

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

Dies ist ein Slicing. Wir geben den Stopppunkt auf 5 an, und vor dem Stoppen werden 5 Elemente aus der Liste entfernt.

Was tun mit den letzten 5 Elementen?

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

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

Wenn Sie die Intervalle zwischen Elementen in der Liste bearbeiten möchten, können Sie Folgendes tun:

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

​Aber Sie sollten es so machen:

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)

Dies ist der Schritt in der Liste. list[::2] bedeutet, die Liste zu durchlaufen und ein Element in zwei Schritten zu entfernen.

Mit list[::-1] können Sie eine coole Flip-Liste erstellen.

10. Tab-Taste oder Leertaste

Auf lange Sicht kann das Mischen von Tabulatoren und Leerzeichen zu einer Katastrophe führen, und Sie werden die Fehlermeldung „IndentationError: unerwarteter Einzug“ erhalten. 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 besteht darin, dass Tabulatoren nicht in allen Editoren gleich erstellt werden. 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.

Englischer Originaltext: The Python Way: 10 Tips

Das obige ist der detaillierte Inhalt von10 Dinge, 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