Einführung in Python, die auch Affen verstehen können (Teil 3)

Dann ist es der dritte Artikel für Anfänger nach dem letzten Mal. Dieses Mal werden wir uns mit Python-Funktionen, -Methoden und -Paketen befassen.

Inhaltsverzeichnis

  1. Funktion
  2. Methode
  3. Paket

1. Funktion

Lassen Sie uns zunächst über Funktionen sprechen. Tatsächlich sind bereits Funktionen erschienen. Es ist eine Typfunktion, eine Listenfunktion usw. Also, wer ist eine Funktion? Einfach ausgedrückt ist eine -Funktion ein wiederverwendbarer Code, der darauf abzielt, eine bestimmte Aufgabe </ b> zu lösen. Wenn Sie etwas tun möchten, müssen Sie den Code normalerweise selbst schreiben. Wenn jedoch eine Funktion vorhanden ist, erledigt das Schreiben dieser Funktion die Arbeit für Sie, anstatt den Code zu schreiben. Lassen Sie mich anhand eines Beispiels erklären. Nachfolgend finden Sie eine Liste der bekannten Preise.

price = [2, 2.5, 13, 1.15]

Angenommen, Sie möchten den Höchstpreis erhalten. Sie können den Maximalwert auch ermitteln, indem Sie die numerischen Werte einzeln ohne Verwendung einer Funktion vergleichen. Wenn Sie jedoch die Max-Funktion kennen, die den Maximalwert findet, können Sie sie auf einmal wie folgt finden.

price = [2, 2.5, 13, 1.15]
max(price)

Wenn Sie den obigen Code ausführen, wird die höchste Nummer in der Liste zurückgegeben.

13

Wie type () ist die max-Funktion eine in Python integrierte Funktion (eine Funktion, die standardmäßig verwendet werden kann, ohne im Code definiert oder implementiert zu sein) und von jedem verwendet werden kann. Natürlich können Sie das Ergebnis der Funktion auch wie folgt einer neuen Variablen zuordnen.

most_expensive = max(price)
#13 ist am meisten_Ersetzt durch teure

Als nächstes führen wir eine integrierte Funktion namens runde Funktion </ b> ein. Diese Funktion namens round ist eine Funktion, die rundet. Beschreiben Sie wie unten gezeigt die Anzahl, die Sie runden möchten, und die Anzahl der Ziffern, die Sie runden möchten. rund (Anzahl, Anzahl der Ziffern) </ b> Unten finden Sie den Code, wenn Sie 3.14 auf die erste Dezimalstelle runden möchten.

round(3.14, 1)

Wenn Sie den obigen Code ausführen, wird er wie unten gezeigt auf die erste Dezimalstelle gerundet.

3.1

Wenn die Anzahl der Ziffern nicht angegeben ist, wird sie auf eine Ganzzahl gerundet.

round(3.14)

Das Ergebnis ist wie folgt.

3
#Wenn Sie die Anzahl der Ziffern nicht angeben, handelt es sich um eine Ganzzahl

Lassen Sie uns sehen, wie Python hilft, um zu sehen, was für eine Funktionsrunde ist. Verwenden Sie die Hilfefunktion wie unten gezeigt, um den Inhalt der Funktion anzuzeigen.

help(round) 

Wenn Sie den obigen Code ausführen, werden die Details der Funktion wie folgt als Ausgabe angezeigt.

round(...)
    round(number[, ndigits]) -> number
    
    Round a number to a given precision in decimal digits (default 0 digits).
    This returns an int when called with one argument, otherwise the
    same type as the number. ndigits may be negative.

Entsprechend der Erklärung erfordert die Rundungsfunktion zwei Arten von Eingaben, number und ndigit (die Eingabe der Funktion heißt argument </ b>). Wenn jedoch nur ein Argument vorhanden ist und ndigit (das Argument, das die Anzahl der Ziffern angibt) nicht vorhanden ist, wird es auf eine Ganzzahl gerundet. Wenn Sie sich die Erklärung in dieser Hilfe genau ansehen, sehen Sie, dass ", ndigits" in eckigen Klammern [] eingeschlossen sind. Dies bedeutet, dass die Funktion auch dann funktioniert, wenn [] nicht vorhanden ist, und diesmal bedeutet dies, dass das Argument auf eine Ganzzahl gerundet wird, wenn kein [] Teil vorhanden ist. Das heißt, die Argumente in [] sind optional </ b>.

Schauen wir uns als nächstes die sortierte Funktion </ b> an.

help(sorted)

Bei Betrachtung der Erklärung mit der Hilfefunktion wurde die folgende Antwort zurückgegeben.

Help on built-in function sorted in module builtins:

sorted(iterable, /, *, key=None, reverse=False)
    Return a new list containing all items from the iterable in ascending order.
    
    A custom key function can be supplied to customize the sort order, and the
    reverse flag can be set to request the result in descending order.

Sie können sehen, dass sorted () drei Argumente akzeptiert: iterable, key und reverse. Eigentlich ist diese sortierte Funktion tiefgreifend, aber um es kurz zu erklären, iterierbare Objekte mit mehreren Elementen (wie Listen. Das Konzept der "Objekte" wird im nächsten Methodenkapitel erläutert, also vorerst Liste Wenn Sie angeben (denken Sie bitte), ist es eine Funktion, die diese Elemente sortiert. Wenn Sie True in umgekehrter Reihenfolge eingeben, wird es in absteigender Reihenfolge sortiert, und wenn Sie False eingeben, wird es in aufsteigender Reihenfolge sortiert. Der Schlüssel ist ein Argument, das die Sortieroption angibt, aber dies ist ein Artikel für Anfänger, daher werde ich ihn weglassen.

price = [2, 2.5, 13, 1.15]
sorted(price, reverse = True)

Da reverse True ist, wird es in absteigender Reihenfolge sortiert.

[13, 2.5, 2, 1.15]

Das Ergebnis ist.

Nun, diesmal habe ich die Funktion eingeführt. Ich habe bisher nur sehr wenige Funktionen gelernt, werde aber wahrscheinlich in Zukunft auf verschiedene Funktionen stoßen, wenn ich verschiedene Analysen durchführe. Wenn Sie im Internet nach "Ich frage mich, ob es eine solche Funktion gibt" suchen, gibt es möglicherweise unerwartet nützliche Funktionen. Wenn Sie die Hilfefunktion verwenden, können Sie sehen, wie die Erstfunktion funktioniert. Probieren Sie daher verschiedene Funktionen aus.

2. Methode

Jetzt kennen Sie integrierte Funktionen wie max (), um den Maximalwert einer Liste abzurufen, und len (), um die Länge einer Liste oder Zeichenfolge abzurufen. Sie können jedoch immer noch keine grundlegenden Vorgänge ausführen, z. B. den Index eines Elements in der Liste abrufen oder den Inhalt der Liste neu anordnen. Natürlich wäre eine eingebaute Funktion, die dies kann, eine Lösung, aber ich habe eine solche Funktion noch nie gesehen, und wenn ja, wird sie selten verwendet. Was sollen wir also mit diesen Operationen tun? Übrigens haben wir bereits viele Variablen verschiedener Typen wie String-Typ, Float-Typ, Listentyp usw. erstellt.

name = "ItemA"
#Zeichenfolgentyp
value = 13
#Float-Typ
price = ["ItemA", 2, "ItemB", 2.5, "ItemC", 13, "ItemD", 1.15]
#Listentyp

Diese Werte und Daten werden als Python-Objekte </ b> bezeichnet. Diese Zeichenfolge ist auch ein Objekt, und dieser Float ist auch ein Objekt. Natürlich ist Liste auch ein Objekt. Diese Objekte haben einen bestimmten "Typ", wie z. B. Zeichenfolge, Etage, Liste usw. Das in der Liste enthaltene "ItemA" ist ein Objekt vom Typ Zeichenfolge, und die gesamte Liste ist ebenfalls vom Typ Liste Objekt. Und jedes Objekt, nicht nur der Typ, hat eine -Methode </ b>. Konzeptionell können Sie sich eine -Methode als eine Funktion vorstellen, die zu einem Python-Objekt </ b> "gehört". Beispielsweise verfügt ein Objekt vom Typ string über eine Methode namens capitalize (), mit der das erste Zeichen der Zeichenfolge nach oben und der Rest nach unten verschoben wird, und über eine Methode namens replace (), die das Ersetzen durchführt. Wie Sie sehen können, gibt es je nach Objekttyp unterschiedliche Methoden sowie unterschiedliche Methoden für float und list.

Beispiele für Typen und Methoden

Schimmel Methodenbeispiel
str capitalize()、replace()
float bit_length()、conjugate()
list index()、count()

Übrigens, selbst wenn Sie über die Theorie sprechen, ist sie möglicherweise nicht leicht zu verstehen. Lassen Sie mich Ihnen ein Beispiel zeigen, wie man sie tatsächlich verwendet.

Angenommen, Sie möchten in der folgenden Liste den Index für "ItemC" abrufen.

price = ["ItemA", 2, "ItemB", 2.5, "ItemC", 13, "ItemD", 1.15]

Da Price ein Python-Objekt vom Listentyp ist, verfügt es über eine Methode namens index. Verwenden Sie zum Aufrufen der Methode die Punktnotation wie folgt.

price.index("ItemC")
#Wenden Sie die Indexmethode auf den Preis an

Geben Sie die Zeichenfolge "ItemC" ein, das Element, für das Sie den Index erhalten möchten. Was zurückgegeben wird, ist natürlich 4, was der Index von "ItemC" ist.

4
#"ItemC"Index

Jetzt können Sie mithilfe einer Methode namens count zählen, wie viele 13s in der Liste enthalten sind, die Sie für ein Objekt vom Listentyp verwenden können.

price.count(13)
#Wenden Sie die Zählmethode auf den Preis an

Natürlich erscheint 13 nur einmal in der Liste, daher wird 1 zurückgegeben.

1

Bisher haben wir Methoden für Objekte vom Listentyp gesehen. Python-Objekte mit Methoden verfügen jedoch über verschiedene Methoden, nicht nur in Listen, sondern auch in float, integr, boolean und string. Schauen wir uns zum Beispiel ein Objekt vom Typ string an.

product1 = "pencil"

Die Zeichenfolge "ItemA" ist product1 zugeordnet. Verwenden wir für dieses Produkt1 eine Methode namens capitalize ().

product1.capitalize()

In diesem Fall gibt großschreiben () eine Zeichenfolge zurück, bei der nur der erste Buchstabe groß geschrieben wird.

"Pencil"

Eine ähnliche Methode ist Upper (), bei der die Zeichenfolge groß geschrieben wird.

Versuchen wir nun die Ersetzungsmethode, mit der die Ersetzung durchgeführt wird, die zuvor kurz vorgestellt wurde. Ich habe product1 einen Bleistift zugewiesen, aber wenn ich ihn wirklich in den Stift legen möchte, kann ich ihn wie folgt reparieren.

product1.replace("cil","stand")

Da "cil" mit Bleistift durch "stand" ersetzt wird, lautet die in product1 zugewiesene Zeichenfolge wie folgt.

"penstand"

Wie wir gesehen haben, hat jedes Objekt je nach Typ eine eigene Methode, und der Inhalt dieser Methode unterscheidet sich je nach Typ. Sie können beispielsweise die Ersetzungsmethode von replace für Zeichenfolgen verwenden, aber Objekte vom Listentyp verfügen nicht über diese Methode. Objekte unterschiedlichen Typs können jedoch dieselbe Methode haben. Zum Beispiel die Indexmethode.

price.index("ItemC")
product1.index("e")

Die Indexmethode ist sowohl im Listentyp als auch im Zeichenfolgentyp vorhanden. Wenn die Indexmethode im Listentyp verwendet wird, wird der Index des Elements in der Liste verwendet, und wenn er im Zeichenfolgentyp verwendet wird, wird der Index des Zeichens in der Zeichenfolge verwendet. Bekommen Mit anderen Worten, je nach Objekttyp kann sich sogar dieselbe Methode unterschiedlich verhalten.

4
#Zum Preis"ItemC"Index ist 4
1
#Mit dem Bleistift"e"Index ist 1

Na dann, nur einen Punkt, bevor wir zum nächsten Kapitel übergehen. Mit einigen Methoden können Sie das aufgerufene Objekt ändern. Versuchen Sie, die Append-Methode in der Preisliste aufzurufen.

price = ["ItemA", 2, "ItemB", 2.5, "ItemC", 13, "ItemD", 1.15]
price.append("ItemE")

append ist eine Methode zum Hinzufügen eines neuen Elements zur Liste. Wenn Sie sich die Preisliste ansehen, nachdem Sie die oben genannten Vorgänge ausgeführt haben, sieht sie wie folgt aus.

price = ["ItemA", 2, "ItemB", 2.5, "ItemC", 13, "ItemD", 1.15, "ItemE"]

Wenn Sie andererseits ein Element aus der Liste entfernen möchten, können Sie es mit einer Methode namens remove () auf die gleiche Weise wie append () entfernen. Sie können die Liste auch in umgekehrter Reihenfolge anordnen, indem Sie die unten gezeigte Methode reverse () verwenden.

price.reverse()

Wenn Sie nach dem Ausführen des obigen Vorgangs versuchen, die Preisliste mit Druck (Preis) anzuzeigen, sehen Sie, dass die Liste in umgekehrter Reihenfolge ist (siehe unten).

[1.15, "ItemD", 13, "ItemC", 2.5, "ItemB", 2, "ItemA"]

Sie müssen dies berücksichtigen, da einige Methoden den Inhalt des Objekts auf diese Weise ändern.

3. Paket

Jetzt kennen Sie die Python-Funktionen und -Methoden. Dies sind ziemlich mächtige Funktionen, und ich denke, sie werden in Zukunft viele Male verwendet. Wenn Sie jedoch alle erforderlichen Funktionen und Methoden schreiben, ist die tatsächlich zu schreibende Codemenge enorm und erfordert Zeit und Mühe. Außerdem ist die Verwaltung des Codes schwierig. Wir verwenden also ein -Paket </ b>, das eine Sammlung von Python-Codeskripten ist. Es gibt so viele Python-Pakete im Netz, insbesondere NumPy </ b>, das Arrays effizient verarbeitet, Matplotlib </ b>, das für die Datenvisualisierung und für maschinelles Lernen verwendet wird. Scikit-Learn </ b> usw. werden häufig verwendet. Standardmäßig sind jedoch nicht alle diese Pakete verfügbar. Sie müssen sie auf Ihrem System installieren und den Befehl "Ich möchte dieses Paket verwenden" als Code schreiben, um sie zu verwenden. (Für die Installation können Sie pip </ b> verwenden, ein Python-Paketwartungssystem.) Gehen Sie insbesondere zur folgenden URL und laden Sie die Datei get-pip.py herunter. https://pip.pypa.io/en/stable/installing/ Gehen Sie dann zum Terminal und führen Sie python3 get-pip.py aus. Sie können jetzt pip verwenden, um Ihre bevorzugten Python-Pakete zu installieren. Im nächsten Artikel werde ich mich ausführlich mit einem der Pakete, NumPy, befassen, aber hier installieren wir das NumPy-Paket speziell. Als allererstes

pip3 install NumPy

Eingeben. Jetzt müssen Sie die Befehle python3 und pip3 verwenden, um dem System mitzuteilen, dass Sie mit Python Version 3 arbeiten. Nachdem das Paket installiert wurde, können Sie es tatsächlich in Ihrem Python-Skript verwenden. Zuvor müssen Sie jedoch das Paket oder das spezifische Modul des Pakets importieren. Dies kann mit der import-Anweisung erfolgen. Führen Sie den Import von NumPy wie folgt aus, um das gesamte NumPy-Paket zu importieren:

import numpy

Eine in NumPy häufig verwendete Funktion ist das Array. Wie benutzt man ein Array? Wenn Sie wie folgt schreiben, tritt tatsächlich ein Fehler auf.

array([2, 2.5, 13, 1.15])
#Wenn Sie wie oben schreiben, "Namensfehler": name 'array'Ich erhalte die Fehlermeldung "ist nicht definiert".

Da diesmal auf die Array-Funktion aus dem NumPy-Paket verwiesen wird, muss diesmal wie folgt geschrieben werden.

numpy.array([2, 2.5, 13, 1.15])

Es ist jedoch auch schwierig, "numpy" einzugeben. Jedes Mal können Sie den Namen beim Importieren des Pakets vereinfachen.

import numpy as np

Dies spart Ihnen viel Zeit bei der Eingabe von "np" anstelle von "numpy".

Jetzt wissen Sie, wie man numpy importiert. Wenn Sie jedoch verschiedene Funktionen von numpy verwenden möchten, können Sie es wie folgt importieren. Wenn Sie jedoch nur die Array-Funktion unter den verschiedenen Funktionen von numpy verwenden möchten, können Sie den Umfang der Beschreibung weiter reduzieren.

from numpy import array

Und indem Sie nur ein Array von numpy importieren

array([2, 2.5, 13, 1.15])

Sie können die Array-Funktion von numpy nur durch Eingabe verwenden. Sie müssen nicht mehr "np" eingeben. Das Importieren, um nur einen Teil des Pakets auf diese Weise zu verwenden, ist nützlich, um den Codierungsaufwand zu reduzieren. Dies hat jedoch auch Nachteile, die es schwierig machen, dem Kontext Ihres Codes zu folgen. Angenommen, Sie arbeiten mit einem sehr langen Skript wie diesem:

from numpy import array
……
price = ["ItemA", 2, "ItemB", 2.5, "ItemC", 13, "ItemD", 1.15]
……
price_ext = price + ["ItemE", 2.5]
……
print(str(len(price_ext) + "elements in price_ext")
……
np_price = array(price_ext)
#Möglicherweise haben Sie vergessen, dass zu diesem Zeitpunkt numpy importiert wurde

Ich importiere numpy ganz am Anfang, aber da dieser Code so lang ist, besteht die Möglichkeit, dass ein Dritter, der den Code liest, vergisst, dass das Array das Array von numpy in der Mitte ist. ist. (Wenn Sie andererseits np.array () schreiben, können Sie sofort verstehen, dass "dies ein numpy Array ist".) Daher ist es klar, dass beim Importieren von numpy als np und beim Schreiben in np.array () numpy verwendet wird.

Jetzt wissen Sie, wie man importiert. Als Referenz werde ich Ihnen auch zeigen, wie Sie nur die Funktionen in die Unterpakete innerhalb des Pakets importieren. Angenommen, Sie haben ein Paket namens scipy, das für die numerische Analyse verwendet wird, aber Sie haben ein Unterpaket namens linalg (zur Berechnung der Matrix) und möchten nur die Funktion inv () (die die inverse Matrix verwendet) verwenden. Dies ist die gewünschte Funktion). Schreiben Sie zu diesem Zeitpunkt wie folgt.

from scipy.linalg import inv

aus "Paket". Name der Importfunktion "Unterpaket" </ b> Schreiben Sie mit Punkten (.).

Schreiben Sie als Zusammenfassung einen Code, um den Umfang und die Fläche des Kreises mit einem Radius von 1 zu ermitteln. Das Umfangsverhältnis kann mit pi in einem Paket namens math aufgerufen werden. Die Antwort lautet wie folgt

#Radius definieren
r = 1

#Mathe importieren
import math

#Umfang(Durchmesser x Umfang)Berechnung
C = 2*math.pi*r

#Bereich(Radius x Radius x Umfang)Berechnung
A = math.pi*r*r

#Berechnungsergebnis anzeigen
print("Umfang: " + str(C))
print("Bereich: " + str(A))

Jetzt wissen Sie, wie Sie das Paket importieren. Das nächste Mal möchte ich über eines der Pakete schreiben, NumPy.

Recommended Posts