März 2016

Band 31, Nummer 3

Dieser Artikel wurde maschinell übersetzt.

Python – Einführung in die SciPy-Programmierung für C#-Entwickler

Durch James McCaffrey

Es ist keine formale Definition der Begriff Data Science, aber ich sehe dies als Softwareprogramme verwenden, um das Analysieren von Daten mithilfe von klassischen statistischen Verfahren und Algorithmen für maschinelles. Bis vor kurzem wurde viel Data Science-Analyse mit teuer kommerziellen Produkten ausgeführt, aber in den vergangenen Jahren hat die Verwendung von open Source-alternativen erheblich erhöht.

Laut Gesprächen mit meinen Kollegen, die drei häufigsten open-Source-Ansätze für Wissenschaft Datenanalyse der R-Sprache, die Sprache Python zusammen mit den Scipy-("wissenschaftlichen Python")-Bibliothek und integrierte Sprache und Ausführung Umgebungen wie SciLab und Oktave.

In diesem Artikel erhalten Sie einen kurzen Überblick über die Programmierung mit SciPy, damit Sie verstehen können, genau wie es ist und zu bestimmen, ob Sie schon befassen möchten. Dieser Artikel setzt Sie über eine gewisse Erfahrung mit c# oder einer ähnlichen allgemeinen Programmiersprache wie Java, jedoch nicht vorausgesetzt, dass Sie etwas über Python oder SciPy wissen.

Meiner Meinung nach ist der schwierigste Teil zu lernen, eine neue Programmiersprache oder Technologie nur gestartet abrufen, damit ich ausführlich das Beschreiben Ausführen eines Programms SciPy erforderliche Software installieren (und deinstallieren). Anschließend wird auf unterschiedliche Weise bearbeiten und Ausführen eines Programms Scipy- und erklären, warum ich lieber mit dem Programm integrierte Entwicklung Umgebung (IDLE) beschrieben.

Abschließend werden Sie schrittweise durch ein repräsentatives Programm, das SciPy verwendet, um ein System der linearen Gleichung zu lösen, um ähnlichkeiten und Unterschiede bei der C#-Programmierung zu veranschaulichen. Abbildung 1 zeigt die Ausgabe des Demoprogramms und bietet Ihnen eine Vorstellung davon, in diesem Artikel geht.

Ausgabe aus einem Vertreter SciPy-Programm
Abbildung 1-Ausgabe aus einem Vertreter SciPy-Programm

Installieren den Stapel SciPy

SciPy Stapel besteht aus drei Komponenten: Python, NumPy und SciPy. Die Python-Sprache muss es sich um grundlegenden Features wie beim Steuerelement Schleifenstruktur und eine allgemeine Listendatentyp jedoch Interessanterweise keine integrierte Array-Typ. Die Bibliothek NumPy fügt Unterstützung für Arrays und Matrizen sowie einige relativ einfachen Funktionen wie z. B. Array suchen und Sortieren von Arrays. Die Bibliothek SciPy Fügt zwischen- und erweiterte Funktionen, die Arbeit mit Daten in Arrays und Matrizen.

Ausführen eines Programms SciPy (technisch gesehen ein Skript da Python interpretiert, sondern wird kompiliert), Installation von Python, dann NumPy und SciPy. Installation ist nicht zu schwierig, und Sie können ein Softwarepaket, das alle drei Komponenten installieren. Eine allgemeine Bundle ist Anaconda Verteilung Continuum Analytics am verwaltet continuum.io. Allerdings zeige ich Ihnen die Komponenten einzeln zu installieren.

Python wird auf fast allen Versionen von Windows unterstützt. Wechseln Sie zu, um die Installation von Python python.org/downloads, in der Sie die Möglichkeit, installieren entweder eine Python-Version 3.x oder 2.x finden (finden Sie unter Abbildung 2). Die beiden Versionen nicht vollständig kompatibel sind, aber die Bibliotheken NumPy und SciPy auf beiden unterstützt. Es empfiehlt sich die 2.x-Version installieren, da es gibt einige Drittanbieter-Funktionen, die noch nicht auf die Version 3.x unterstützt werden.

Installieren von Python
Abbildung 2-Installation von Python

Wenn Sie eine Downloadschaltfläche klicken, erhalten Sie die Option des MSI-Installationsprogramms sofort auszuführen oder zu speichern, so dass Sie ihn später ausführen können. Sie können die Schaltfläche ausführen klicken. Das Installationsprogramm mithilfe ein Assistenten. Der erste Bildschirm gefragt werden, ob für alle Benutzer oder nur für den aktuellen Benutzer installiert werden soll. Der Standardwert ist für alle Benutzer die Schaltfläche "Weiter" klicken.

Der nächste Bildschirm fordert Sie auf das Stammverzeichnis für die Installation angeben. Der Standardwert ist C:\Python27 (anstelle der üblicheren Verzeichnis C:\Program Files), und ich schlage vor, Sie verwenden den Standardspeicherort, und klicken Sie auf Weiter. Im folgenden Bildschirm können, die Sie ein- oder ausschließen verschiedene Funktionen, z. B. Dokumentation und Hilfsprogramm-Tools wie, pip ("Pip installiert Python"). Die Python-Funktionen sind in Ordnung, so klicken Sie auf die Schaltfläche "Weiter".

Die Installation beginnt, und sehen Sie ein Fenster mit einer vertrauten blauen Statusanzeige. Wenn die Installation abgeschlossen ist, sehen Sie ein Fenster mit einer Schaltfläche "Fertig stellen". Klicken Sie auf die Schaltfläche.

Standardmäßig wird der Python-Installationsvorgang PATH-Umgebungsvariable des Computers ändern. Sie sollten C:\Python27 und C:\Python27\Scripts mit C:\Python27\Lib\idlelib der PATH-Variablen hinzufügen, damit Python über eine Befehlszeile ausführen und die im Leerlauf-Editor starten, ohne in ihre Verzeichnisspeicherorte Navigieren zu müssen.

Überprüfen Sie, dass Python ordnungsgemäß installiert ist. Starten Sie eine Befehlsshell, und navigieren Sie zum Systemstammverzeichnis durch Eingabe einer cd \ Befehl. Geben Sie nun den Befehl Python - Version (Beachten Sie die beiden Bindestriche). Wenn Python antwortet, wird er erfolgreich installiert.

Installieren NumPy und SciPy

Es ist möglich, die Pakete NumPy und SciPy von Quellcode mithilfe der Python-Pip-Dienstprogramm zu installieren. Die Pip-Ansatz funktioniert gut mit Paketen, die reine Python-Code hingegen NumPy und SciPy haben Hooks kompilierter Code für die C#-Sprache, so installieren sie mit Pip ist ziemlich kompliziert.

Glücklicherweise haben Mitglieder der Community Python vorkompilierte binäre Installationsprogramme für NumPy und SciPy erstellt. Diejenigen, die mit sollten werden in der SourceForge-Repository verwaltet. Wechseln Sie zu NumPy installieren, bit.ly/1Q3mo4M, wobei Sie Links zu verschiedenen Versionen sehen. Ich empfehle die Verwendung der neuesten Version, die am meisten Download-Aktivität verfügt.

Sie sehen eine Liste von Links. Suchen Sie nach einen Link mit einem Namen Numpy-1.10.2-win32-Superpack-python2.7.exe ähnlich, siehe Abbildung 3. Stellen Sie sicher, dass die ausführbare Datei für Ihre Version von Python und auf diesen Link klicken. Nach einer kurzen Verzögerung werden Sie erhalten eine Option, um die selbstextrahierende ausführbare Installationsprogramm sofort ausführen oder speichern Sie es später zu installieren. Klicken Sie auf die Schaltfläche ausführen.

Installieren NumPy
Abbildung 3: Installieren NumPy

Das Installationsprogramm NumPy verwendet einen Assistenten. Der erste Bildschirm zeigt nur eine einführende Begrüßungsfenster. Klicken Sie auf die Schaltfläche "Weiter". Im nächste Bildschirm aufgefordert, das Installationsverzeichnis angeben. Das Installationsprogramm finden die vorhandene Installation von Python und wird empfohlen, installieren NumPy im Verzeichnis C:\Python27\Lib\site-packages. Übernehmen Sie diesen Speicherort aus, und klicken Sie auf Weiter.

Im nächste Bildschirm können Sie die letzte chance aus der Installation sichern, aber nicht tun. Klicken Sie auf die Schaltfläche "Weiter". Während der Installation wird ein Statusfenster angezeigt, und wenn Sie beobachten, sehen Sie einige interessante Protokollieren von Nachrichten. Wenn die NumPy-Installation abgeschlossen ist, werden Sie mit der Schaltfläche "Fertig stellen" angezeigt. Klicken Sie auf. Dann sehen Sie ein letztes Setup abgeschlossen Fenster mit einer Schaltfläche "Schließen". Klicken Sie auf.

Nachdem Sie NumPy installiert haben, besteht der nächste Schritt zum Installieren des SciPy-Pakets, das für die Installation von NumPy identisch ist. Wechseln Sie zu bit.ly/1QbwJ0z und eine aktuelle, gut verwendete Verzeichnis gefunden. Wechseln Sie zu diesem Verzeichnis und finden Sie einen Link zu einer ausführbaren Datei mit einem Namen wie Scipy-0.16.1-win32-Superpack-python2.7.exe, und klicken Sie auf die selbstextrahierende ausführbare Installationsprogramm zu starten.

Ein nützliches Merkmal des Stapels SciPy ist es sehr einfach, um Komponenten zu deinstallieren. Sie gelangen auf die Windows-Systemsteuerung, Programme und Funktionen, wählen Sie die Komponente zu entfernen, und klicken Sie dann auf die Schaltfläche Deinstallieren (d. h., Python, oder NumPy oder SciPy) und die Komponente schnell und problemlos entfernt werden.

Bearbeiten und Ausführen eines Programms SciPy

Schreiben von Programmen, die Verwendung einer es gibt nicht viele Optionen zur Verfügung und ziemlicher Visual Studio verwenden. Aber beim Schreiben eines Programms Python Ihnen viele Optionen zur Verfügung. Ich empfehle die Verwendung der Leerlauf-Editor und Ausführung Umgebung.

Die idle.bat Programm Launcher-Datei befindet sich standardmäßig im Verzeichnis C:\Python27\Lib\idelib. Wenn Sie dieses Verzeichnis System PATH-Umgebungsvariable hinzugefügt haben, können Sie im Leerlauf starten, eine Befehlsshell öffnen, und geben den Befehl im Leerlauf. Dadurch wird die Anwendung im Leerlauf Python-Shell gestartet, wie im oberen Teil des gezeigt Abbildung 4.

Bearbeiten und Ausführen eines Programms mithilfe von im Leerlauf
Abbildung 4 bearbeiten und Ausführen eines Programms mithilfe von im Leerlauf

Sie können eine neue Python-Quellcodedatei erstellen, indem Sie auf die Datei | Neue Datei-Element in der Menüleiste. Dieses wird geöffnet, die eine ähnliche separate Editorfenster Siehe im unteren Teil des Abbildung 4. Geben Sie diese sieben Anweisungen im Editor-Fenster:

# test.py
import numpy as np
import scipy.misc as sm
arr = np.array([1.0, 3.0, 5.0])
print arr
n = sm.factorial(4)
print "4! = " + str(n)

Speichern Sie das Programm als test.py in jedem geeigneten Verzeichnis. Jetzt Sie Ihr Programm ausführen können, indem Sie bei der Ausführung auf | Führen Sie die Modul-Menüelement im Editor-Fenster, oder drücken Sie die F5-Taste. Ausgabe wird im Python-Shell-Fenster angezeigt. Einfach!

Einige erfahrene Python-Entwickler werden Potshots bei Leerlauf, da es ziemlich einfach ist. Aber das ist genau das, warum mir gefällt. Erhalten Sie nicht alle Elemente in der Nähe der anspruchsvolle Programmierumgebung von Visual Studio, aber Sie werden Syntaxfarben und eine gute Fehler Nachricht-Generator angezeigt, wenn Sie den falschen Code geschrieben haben.

Anstatt im Leerlauf zu bearbeiten und Ausführen von Programmen verwenden, können Sie einem Text-Editor, wie z. B. Editor, schreiben und speichern eine Python-Programm. Anschließend können Sie die Anwendung über die Befehlszeile wie folgt ausführen:

C:\IntroToPython> python test.py

Dabei wird davon ausgegangen, dass Sie in der Umgebungsvariable PATH den Pfad zu den Interpreter python.exe haben. Ausgabe wird in der Befehlsshell angezeigt.

Es gibt viele Python IDEs. Ein gängiger open Source IDE, die für die Verwendung mit SciPy speziell ist wissenschaftlichen Python-Entwicklungsumgebung (Spyder). Sie finden Informationen zur pythonhosted.org/spyder.

Eine interessante Alternative für Leerlauf und Spyder ist die open-Source-Python-Tools für Visual Studio (PTVS)-Plug-in. Wie der Name schon sagt, können Sie PTVS bearbeiten und Ausführen von Python-Programmen mit Visual Studio. Sie können Informationen zu PTVS bei microsoft.github.io/PTVS.

SciPy-Demo-Programms

Betrachten Sie die Python-Anwendung in Abbildung 5, oder besser noch, geben oder Laden Sie die Datei, die diesen Artikel, in einen Python-Editor begleitet, und führen Sie das Programm. Die Demo soll keinen umfassenden Satz von Beispielen SciPy sein, aber sie Sie wie SciPy Programmierung ist einen guten Überblick erhalten soll.

Abbildung 5: Vertreter SciPy Programm

# linear_systems.py
# Python 2.7
import numpy as np
import scipy.linalg as spla
def my_print(arr, cols, dec, nl):
  n = len(arr)
  fmt = "%." + str(dec) + "f" # like %.4f
  for i in xrange(n):  # alt: for x in arr
    if i > 0 and i % cols == 0:
      print ""
    print fmt % arr[i],
  if nl == True:
    print "\n"
def main():
  print "\nBegin linear system using SciPy demo \n"
  print "Goal is to solve the system: \n"
  print "3x0 + 4x1 - 8x2 = 9"
  print "2x0 - 5x1 + 6x2 = 7"
  print " x0 + 9x1 - 7x2 = 3"
  print ""
  A = np.matrix([[3.0, 4.0, -8.0],
                 [2.0, -5.0, 6.0],
                 [1.0, 9.0, -7.0]])
  b = np.array([9.0, 7.0, 3.0])      # b is an array
  b = np.reshape(b, (3,1))           # b is a col vector
  print "Matrix A is "
  print A
  print ""
  print "Array b is "
  my_print(b, b.size, 2, True)
  d = spla.det(A)
  if d == 0.0:
    print "Determinant of A is zero so no solution "
  else:
    Ai = spla.inv(A)
    print "Determinant of A is non-zero "
    print "Inverse of A is "
    print Ai
    print ""
  Aib = np.dot(Ai, b)
  print "A inverse times b is "
  print Aib
  print ""
  x = spla.solve(A, b)
  print "Using x = linalg.solve(A,b) gives x = "
  print x
  print ""
  try:
    A = np.array([[2.0, 4.0], [3.0, 6.0]])
    print "Matrix A is "
    print A
    print ""
    print "Inverse of A is "
    Ai = spla.inv(A)
    print Ai
  except Exception, e:
    print "Fatal error: " + str(e)
  print "\nEnd SciPy demo \n"
if __name__ == "__main__":
  main()

Das Demoprogramm beginnt mit zwei Kommentarzeilen:

# linear_systems.py
# Python 2.7

Da Python 2.x und 3.x-Versionen nicht vollständig kompatibel sind, ist es keine schlechte Idee, explizite darüber, welche Version von Python, die Sie verwendet werden. Als Nächstes lädt die Demo das gesamte NumPy-Modul und eine untergeordnete SciPy-Modul:

import numpy as np
import scipy.linalg as spla

Stellen Sie sich diese Anweisungen als etwas wie ein C#-Programm einen Verweis aus einer Microsoft .NET Framework-DLL hinzugefügt, und schalten Sie die Assembly in den Bereich mit einer Anweisung. Das Untermodul Linalg steht für lineare Algebra. SciPy ist in 16 primäre untergeordnete Module plus zwei untergeordnete Dienstprogrammmodule unterteilt. Als Nächstes implementiert die Demo eine Programm definierten-Funktion, um ein Array anzuzeigen:

def my_print(arr, cols, dec, nl):
  n = len(arr)
  fmt = "%." + str(dec) + "f" # like %.4f
  for i in xrange(n):  # alt: for x in arr
    if i > 0 and i % cols == 0:
      print ""
    print fmt % arr[i],
  if nl == True:
    print "\n"

Python verwendet Einzug und geschweifte Klammern zum Begrenzen von Codeblöcken. Hier verwende ich zwei Leerzeichen für den Einzug, um Platz zu sparen. Die meisten Python-Programmierer verwenden Sie vier Leerzeichen für den Einzug.

Funktion My_print verfügt über vier Parameter: ein Array angezeigt, die Anzahl der Spalten zum Anzeigen der Werte, die Anzahl der Dezimalstellen für jeden Wert und ein Flag, der angibt, ob ein Zeilenumbruch zu drucken. Die Len-Funktion gibt die Größe (Anzahl der Zellen) des Arrays zurück. Eine Alternative ist die Verwendung die Eigenschaft der Array-Größe:

n = arr.size

Die Xrange-Funktion gibt einen Iterator zurück und wird standardmäßig ein Array durchlaufen. Eine Alternative ist die Verwendung ein Musters "für x im Arr" Foreach-Anweisung in c# ähnelt.

Da Python und C#-Stämme in der Programmiersprache C sind, sind viele der Python-Syntax von C#-Programmierer vertraut. In der Demo % ist der modulo-Operator, doch sie dient auch zum Formatieren der Ausgabe von floating Point; und dient als ein logischer Operator statt & &; == ist eine Überprüfung auf Gleichheit; und True und False (in Großbuchstaben) sind boolesche Konstanten.

Als Nächstes erstellt die Demo eine Programm definierten Funktion mit dem Namen main, dem beginnt mit einigen print-Anweisungen, die erklären, das Problem zu lösen:

def main():
  print "\nBegin linear system using SciPy demo \n"
  print "Goal is to solve the system: \n"
  print "3x0 + 4x1 - 8x2 = 9"
  print "2x0 - 5x1 + 6x2 = 7"
  print " x0 + 9x1 - 7x2 = 3"

Ziel ist es, die Werte für Variablen X0, X1 und X2 zu finden, damit alle drei Formeln erfüllt werden. Der wichtigste Name ist kein Python-Schlüsselwort, damit es nichts aufgerufen wurden konnte. Mit irgendeiner Art eine main-Funktion ist nicht erforderlich. Für kurze Programme (in der Regel weniger als eine Seite des Codes) ich Dokumentfunktionen, in der Regel eine main-Funktion und starten Sie einfach mit ausführbaren Anweisungen.

Das Problem weiter, das Demoprogramm eingerichtet werden, indem die Werte der Koeffizienten in eine benannte Konstanten und die in ein NumPy-Array mit dem Namen b: NumPy 3 x 3-Matrix einfügen

A = np.matrix([[3.0, 4.0, -8.0],
               [2.0, -5.0, 6.0],
               [1.0, 9.0, -7.0]])
b = np.array([9.0, 7.0, 3.0])

Die Matrix und Array-Funktionen hier Verweigerungslisten tatsächlich Python (angezeigt durch den rechteckigen Klammern) mit hartcodierte Werte als Argumente. Sie können auch erstellen, Matrizen und Arrays mithilfe der NumPy Nullen Funktion und können Sie Daten aus einer Textdatei in eine Matrix oder ein Array mit der Funktion Loadtxt lesen.

Wenn Sie eine Klasse Algebra haben, können Sie erinnern, zum Lösen eines Systems von Formeln Ax = b x, in dem ist eine quadratische Matrix Koeffizienten A und b ist eine Spalten-Matrix (das heißt, die sich n Zeilen jedoch nur 1 Spalte) der Konstanten, finden Sie die Inverse ein und klicken Sie dann Matrix Multiplizieren das Gegenteil Spalte Matrix b Mal.

In der Demo ist an diesem Punkt b ein Array mit drei Zellen statt einer Spaltenmatrix 3 x 1-an. Zum Konvertieren von b in einer Spaltenmatrix verwendet das Demoprogramm die umformen-Funktion:

b = np.reshape(b, (3,1))

Die NumPy-Bibliothek enthält zahlreiche Funktionen, die Arrays und Matrizen ändern können. Beispielsweise wird die Flatten-Funktion eine Matrix in ein Array konvertiert. Wie sich herausstellt, ist die SciPy Matrix Multiplikation-Funktion nun intelligent genug ist, abgeleitet, was Sie beabsichtigen, wenn Sie eine Matrix multiplizieren und ein Array also der Aufruf umformen hier wirklich notwendig ist.

Als Nächstes zeigt das Demoprogramm die Werte in Matrizen, A und b

print "Matrix A is "
print A
print ""
print "Array b is "
my_print(b, b.size, 2, True)

In Python 2.x, Drucken ist eine Anweisung anstelle einer Funktion in Python 3.x, damit die Klammern optional sind. Die Funktion Programm definierten My_print zurückgeben keinen Wert, damit entspricht einer "void" C#-Funktion wird aufgerufen, wie zu erwarten. Python unterstützt benannte Parameter aufrufen, damit der Aufruf wurde haben könnte:

my_print(arr=b, cols=3, dec=2, nl=True)

Als Nächstes sucht das Demoprogramm die Umkehrung der Matrix A:

d = spla.det(A)
if d == 0.0:
  print "Determinant of A is zero so no solution "
else:
  Ai = spla.inv(A)
  print "Determinant of A is non-zero "
  print "Inverse of A is "
  print Ai

Die SciPy Det-Funktion gibt die Determinante einer Matrix Quadrat zurück. Wenn eine Matrix der Koeffizienten für ein System der linearen Gleichung einen Determinanten gleich 0 (null) aufweist, kann nicht die Matrix umgekehrt werden. Die Python-If-else-Anweisung sollte Ihnen bekannt vorkommen. Python weist eine tolle "Elif"-Schlüsselwort für If-else-If Steuerungsstrukturen, z. B.:

if n < 0:
  print "n is negative"
elif n == 0:
  print "n equals zero"
else:
  print "n is positive"

Als Nächstes löst die Demo im System der Formeln mithilfe der Matrixmultiplikation über die NumPy-Punkt-Funktion:

Aib = np.dot(Ai, b)
print "A inverse times b is "
print Aib

Die Punkt-Funktion wird so genannt, da Matrixmultiplikation eine Form ist der genannten des Skalarprodukt.

Als Nächstes das Demoprogramm löst das System von Formeln direkt, mithilfe der NumPy Funktion lösen:

x = spla.solve(A, b)
print "Using x = linalg.solve(A,b) gives x = "
print x

Viele Scipy- und NumPy-Funktionen müssen optionale Parameter mit Standardwerten, etwas entspricht c# das Überladen von Methoden. Die SciPy lösen Funktion verfügt über fünf optionale Parameter. Der Punkt ist, dass wenn eine SciPy oder NumPy Beispiel-Funktion aufrufen, auch wenn Sie denken, dass Sie wissen, dass im Beispiel angezeigt wird, es eine gute Idee ist, sehen Sie sich die Dokumentation, um festzustellen, ob optionale Parameter hilfreich sind.

Es gibt einige Überlappung zwischen den NumPy und SciPy-Bibliotheken. Beispielsweise hat das NumPy-Paket auch Untermodul Linalg, die eine Lösungsreihenfolge-Funktion verfügt. Die NumPy lösen jedoch Funktion weist keine optionalen Parameter.

Als Nächstes das Demoprogramm zeigt ein Beispiel für die Python-Try-except-Mechanismus:

try:
  A = np.array([[2.0, 4.0], [3.0, 6.0]])
  Ai = spla.inv(A)
  print Ai
except Exception, e:
  print "Fatal error: " + str(e)

Dieses Muster sieht vertraut, wenn Sie jemals die C#-Try-Catch-Anweisungen verwendet haben. In c# beim Verketten von Zeichenfolgen, möchten implizit. Beispielsweise können in c# Folgendes schreiben:

int n = 99;
Console.WriteLine("The value of n is " + n);

Aber wenn Sie Zeichenfolgen in Python verketten, müssen Sie dies explizit durch eine Umwandlung mithilfe der str-Funktion:

n = 99
print "The value of n is " + str(n)

Das Demoprogramm endet mit print-Anweisung und eine spezielle Python-beschwörung:

print "\nEnd SciPy demo \n"
if __name__ == "__main__":
  main()

Die letzte Anweisung des Demoprogramms hätte nur main() als eine Anweisung an die Anwendung benutzerdefinierte Funktion main aufrufen interpretiert werden würde, und das Programm ordnungsgemäß ausgeführt wird. Hinzufügen der If __name__ == "__main__" Muster (Beachten Sie, dass es zwei Unterstrichzeichen vor und nach Name und Main) wird das aktuelle Modul als Einstiegspunkt des Programms. Wenn ein Python-Programm Ausführung beginnt, kennzeichnet der Interpreter intern das erste Modul als:

"__main__"

Angenommen Sie mussten einige andere Programm definierten Module mit ausführbaren Anweisungen, und Sie Sie importiert haben. Ohne die If-würde Python-Übersetzer finden Sie unter ausführbare Anweisungen in den importierten Modulen und ausgeführt werden. Etwas anders ausgedrückt, wenn Sie die If-Überprüfung auf Ihre Anwendung benutzerdefinierte Python-Dateien hinzufügen, diese Dateien können von anderen Programmen Python importiert werden und nicht dazu, dass Probleme.

Was ist der Punkt?

Die erste Reaktion auf dieses Artikels kann auch etwas wie "nun, dies ist alles recht interessant, aber meine tägliche Arbeit nicht mir lösen Systeme von linearen Formeln oder undurchsichtig mathematische Funktionen verwenden." Meine Antwort wäre, "Nun, das ist richtig, aber vielleicht ist einer der Gründe, aus denen Sie einige der Funktionen der SciPy-Bibliothek nicht verwenden, dass Sie nicht wissen, welche Art von Problemen, die Sie lösen können."

Anders ausgedrückt, meiner Meinung nach, sind tendenziell Entwickler Probleme bewältigen, bei denen sie die Tools verfügen. Beispielsweise, wenn Sie Windows Communication Foundation (WCF) kennen, und klicken Sie dann Sie WCF verwenden (und Meine Mitleid haben). Wenn Sie die Fertigkeiten SciPy hinzugefügt haben, könnten Sie feststellen, dass Sie über Daten verfügen, die Sie in nützliche Informationen umwandeln können.


Dr. James McCaffrey ist in Redmond (Washington) für Microsoft Research tätig. Er hat an verschiedenen Microsoft-Produkten mitgearbeitet, unter anderem an Internet Explorer und Bing. Dr. McCaffrey erreichen Sie unter jammc@microsoft.com.

Dank den folgenden technischen Experten von Microsoft für die Überprüfung dieses Artikels: Dan Liebling und Kirk Olynyk