Hilfreiche Ratschläge

So geben Sie Daten in der Programmiersprache Python aus

Pin
Send
Share
Send
Send


Nachdem Sie herausgefunden haben, in welcher Umgebung Sie Programme in Python erstellen und ausführen können, lernen Sie die Grundlagen dieser Sprache. Das Interessanteste ist, dass die ersten einfachen Programme ohne Kenntnis komplexer Konstruktionen und des Programmkörpers (wie in Pascal) geschrieben werden können. In dieser Lektion lernen wir die Eingabe-Ausgabe-Operationen in Python sowie die schnelle Ausgabe von Rechenoperationen auf dem Computerbildschirm kennen.



Um herauszufinden, was als Ergebnis der Aktionen passiert, die Sie im Programm ausführen, müssen Sie dies irgendwie anzeigen. Die einfachste und grundlegendste Art, Daten aus dem Programm auszugeben, ist die gute alte Ausgabe des Ergebnisses auf dem Bildschirm direkt über die Shell-Befehlszeile der IDLE-Entwicklungsumgebung.

Um Werte auf dem Bildschirm anzuzeigen, verfügt Python über eine Funktion print (). Schreiben Sie in die durch Kommas getrennten Klammern, was Sie ausgeben möchten.

Bequeme Ausgabeformatierung

Momentan haben wir zwei Möglichkeiten gefunden, um Werte auszugeben: Operatorausdrücke (Ausdrucksanweisungen) und die Funktion print (). (Die dritte Möglichkeit ist die Verwendung der write () -Methode von Dateiobjekten. Sie können auf die Standardausgabedatei als sys.stdout verweisen. Weitere Informationen zu diesem Element finden Sie in der Bibliotheksreferenz.)

Häufig besteht der Wunsch, mehr Kontrolle über die Formatierung der Ausgabe zu haben als beim üblichen Drucken von durch Leerzeichen getrennten Werten. Es gibt zwei Möglichkeiten, Ihre Ausgabe zu formatieren. Die erste Möglichkeit besteht darin, die gesamte Arbeit an den Linien selbst zu erledigen: Mithilfe von Linienschnitten und Verkettungen können Sie jede gewünschte Vorlage erstellen. Das Standard-String-Modul enthält viele nützliche Operationen zum Ausrichten von Strings an einer bestimmten Spaltenbreite (wir werden sie in Kürze überprüfen). Die zweite Möglichkeit ist die Verwendung der Methode str.format ().

Das Zeichenfolgenmodul enthält die Template-Klasse, die eine weitere Möglichkeit zum Ersetzen von Werten in Zeichenfolgen bietet.

Eine Frage bleibt natürlich: Wie konvertiere ich Werte in Strings? Glücklicherweise gibt es in Python zwei Möglichkeiten, einen beliebigen Wert in einen String umzuwandeln - dies sind die Funktionen repr () und str ().

Der Zweck der Funktion str () besteht darin, Werte in einer ziemlich lesbaren Form zurückzugeben, im Gegensatz zu repr (), deren Zweck darin besteht, Formulare zu generieren, die vom Interpreter gelesen werden können (oder SyntaxError zu verursachen, wenn es keine entsprechende Syntax gibt). Für Objekte, die keine von Menschen lesbare Form haben, gibt die Funktion str () denselben Wert wie repr () zurück. Viele Werte wie Zahlen oder Strukturen wie Listen und Wörterbücher haben für beide Funktionen dieselbe Form. Insbesondere Zeichenketten und Gleitkommazahlen haben zwei verschiedene Formen.

Es gibt zwei Möglichkeiten, eine Tabelle mit Quadraten und Würfeln anzuzeigen:

(Beachten Sie, dass im ersten Beispiel durch die Funktion print () einzelne Leerzeichen zwischen den Spalten hinzugefügt werden: Es werden immer Leerzeichen zwischen den Parametern eingefügt.)

In diesem Beispiel wird die Funktionsweise der String-Objektmethode rjust () veranschaulicht, mit der der String im Feld der übergebenen Breite nach rechts ausgerichtet und mit Leerzeichen nach links eingerückt wird. Ähnliche Methoden sind für ljust () und center () verfügbar. Diese Methoden geben nichts aus, sondern geben nur eine neue Zeile zurück. Wenn die Eingabezeile zu lang ist, werden sie nicht gekürzt, was normalerweise das geringste Übel ist. (Zum Abschneiden können Sie eine Slice-Operation hinzufügen, zum Beispiel: x.ljust (n) [: n].)

Es gibt eine andere Methode - zfill (), die den Raum links von der Zahlenzeile mit Nullen füllt. Es erkennt die Plus- und Minuszeichen:

Die Hauptmethode zum Verwenden der str.format () -Methode lautet wie folgt:

Eckige Klammern mit Zeichen (sie heißen Felder formatieren (Felder formatieren)) werden durch Objekte ersetzt, die an die Formatmethode übergeben werden. Die Zahl in Klammern gibt die Position des Objekts in der Liste der an die Formatmethode übergebenen Parameter an.

Wenn die Formatmethode benannte Parameter verwendet, können Sie deren Werte mit dem Namen des entsprechenden Arguments referenzieren.

Positions- und benannte Parameter können beliebig kombiniert werden:

Ein optionaler Formatbezeichner ":" kann einem Feldnamen folgen. Verwenden Sie diese Option, um die Formatierung eines Werts zu steuern. Das folgende Beispiel belässt den Pi nur drei Stellen nach dem Dezimaltrennzeichen.

Nach dem ‘:’ -Spezifizierer können Sie eine Zahl angeben - die minimale Feldbreite, ausgedrückt in Anzahl der Zeichen. Dies ist praktisch, um schöne Tabellen zu erstellen:

Wenn Ihre Formatzeichenfolge sehr lang ist und Sie sie nicht in Teilzeichenfolgen aufteilen möchten, wäre es schön, wenn Sie sich auf Variablen beziehen könnten, die formatiert werden sollen, und zwar nicht nach Position, sondern nach Name. Dies kann durch einfaches Übergeben des Wörterbuchs und Verwenden eckiger Klammern[]’Für den Zugriff auf Schlüssel.

Dasselbe können Sie tun, indem Sie ein Wörterbuch mit benannten Parametern mit der Notation „**“ übergeben:

Diese Technik ist insbesondere in Kombination mit der integrierten Funktion vars () nützlich, die ein Wörterbuch mit lokalen Variablen zurückgibt.

Eine ausführliche Beschreibung der Formatierung von Zeichenfolgen mit der Methode str.format () finden Sie im Abschnitt Syntax der Formatierung der Zeichenfolgensyntax.

Bildschirmausgabe

Angenommen, wir haben eine Variable mit einem bestimmten Wert und möchten sie auf dem Bildschirm anzeigen. Dafür in Python Es gibt eine Funktion print (). In die Klammern setzen wir den Namen unserer Variablen oder einige Zeichen. Wenn Sie einfach eine Ziffer als numerische Variable eingeben, schwört der Interpreter.

Jedes Mal, wenn eine Funktion ausgelöst wird print () Einige Informationen werden auf dem Bildschirm angezeigt, in diesem Fall die gleichen. Nachdem print () Wenn er alles druckt, was ihm gesagt wurde, wird er die nächste Zeile einrücken. Um dies zu verhindern, müssen Sie etwas hinzufügen ...

In Anführungszeichen können Sie grundsätzlich schreiben, was Ihr Herz begehrt.

Formatieren von Zeichenfolgen im alten Stil

Sie können die% -Operation verwenden, um Zeichenfolgen zu formatieren. Der linke Operand wird als Zeichenfolge im Sprintf-Format interpretiert, die auf den rechten Operanden angewendet werden soll, und die aus dieser Konvertierung resultierende Zeichenfolge wird zurückgegeben. Zum Beispiel:

Da die str.format () -Methode ziemlich neu ist, verwendet der meiste Python-Quellcode immer noch die% -Operation. Im Laufe der Zeit wird die Zeilenformatierung jedoch aus der Sprache entfernt, sodass in den meisten Fällen str.format () verwendet werden sollte.

Weitere Informationen finden Sie im Abschnitt Formatieren von Zeichenfolgen im alten Stil.

Benutzereingabe

Denken Sie daran, dass alles, was der Benutzer eingegeben hat, eine Zeichenvariable ist, auch wenn er nur eine Zahl eingegeben hat.
Wenn der Benutzer eine Zahl für eine weitere Aktion als Zahl eingeben muss (z. B. für mathematische Operationen), müssen wir den folgenden Trick ausführen: Konvertieren Sie unser Zeichenfolgenergebnis in numerisch.

Zuerst gibt der Benutzer Daten ein, nachdem er sie eingegeben und gedrückt hat Eintretenwerden die von ihm eingegebenen Zeichenfolgeninformationen in ein Zahlenformat umgewandelt. Die Funktion hilft uns dabei. int (). Es konvertiert alle Daten in ein numerisches Ganzzahlformat. Wenn Sie sich jedoch dazu entschließen, einige Zeichen in ein numerisches Format zu konvertieren, gibt der Interpreter eine Fehlermeldung aus.

Buchstaben sind keine Zahlen!

Auf so einfache Weise haben wir „Ein- und Ausgabe in Sprache“ kennengelernt Python«

Dateien schreiben und lesen

Die Funktion open () gibt ein Dateiobjekt zurück und wird in den meisten Fällen mit zwei Argumenten verwendet: open (Dateiname, Modus) .

Der erste Parameter ist eine Zeichenfolge, die den Dateinamen enthält. Die zweite Zeile enthält mehrere Zeichen, die die Verwendung der Datei beschreiben. Parameterwert Modus kann das Symbol 'r' sein, wenn die Datei nur zum Lesen geöffnet ist, 'w' ist nur zum Schreiben geöffnet (eine vorhandene Datei mit demselben Namen wird gelöscht) und 'a' ist die Datei, die zum Hinzufügen geöffnet ist: alle Daten, die automatisch in die Datei geschrieben werden werden zum Ende hinzugefügt. 'r +' öffnet die Datei zum Lesen und Schreiben. Parameter Modus optional: Wenn es weggelassen wird, wird angenommen, dass es gleich 'r' ist.

Im Normalfall öffnen sich Dateien in Textmodus (Textmodus) - Dies bedeutet, dass Sie aus einer Datei lesen und in einer bestimmten Codierung in eine Datei schreiben (standardmäßig wird diese verwendet) Utf-8) Wenn Sie dem Dateimodus символ b ’hinzufügen, wird die Datei in geöffnet Binärmodus (Binärmodus): Jetzt werden die Daten als binäre Objekte gelesen und geschrieben. Dieser Modus sollte für alle Dateien verwendet werden, die keinen Text enthalten.

Wenn Sie den Textmodus verwenden, werden alle plattformspezifischen Zeilenenden ( n unter Unix, r n unter Windows) beim Lesen aus einer Datei auf das Zeichen n gekürzt und von n in eine für bestimmte Ansicht zurückkonvertiert Plattformen beim Schreiben in eine Datei. Diese Änderungen der Dateidaten hinter den Kulissen funktionieren bei Textdateien ordnungsgemäß, beschädigen jedoch Binärdaten in Dateien wie JPEG oder EXE. Achten Sie beim Lesen und Schreiben solcher Dateien darauf, den Binärmodus zu verwenden.

Methoden für Dateiobjekte

In den folgenden Beispielen wird davon ausgegangen, dass ein Dateiobjekt mit dem Namen f im Voraus erstellt wird.

Um den Inhalt einer Datei zu lesen, rufen Sie f.read (Größe) - Die Funktion liest eine bestimmte Datenmenge und gibt sie als String- oder Byte-Objekt zurück. Größe - optionaler numerischer Parameter. Wenn Größe Ausgelassen oder negativ, der gesamte Inhalt der Datei wird gelesen und zurückgegeben. Wenn die Datei doppelt so groß ist wie der Arbeitsspeicher Ihres Computers, liegt die Lösung für dieses Problem weiterhin in Ihren Händen. Andernfalls wird ein Maximum gelesen und zurückgegeben. Größe Byte Wenn das Ende der Datei erreicht ist, gibt f.read () eine leere Zeichenfolge zurück ().

f.readline () liest eine Zeile aus der Datei, das Zeilenumbruchzeichen ( n) bleibt am Ende der gelesenen Zeile und fehlt beim Lesen der letzten Zeile der Datei nur, wenn die Datei nicht mit einer leeren Zeile endet. Aus diesem Grund wird der Rückgabewert eindeutig: Wenn f.readline () eine leere Zeile zurückgibt, ist das Dateiende erreicht, und die durch ' n' dargestellte leere Zeile enthält nur ein Zeilenumbruchzeichen.

f.readlines () gibt eine Liste mit allen in der Datei gefundenen Datenzeilen zurück. Wenn der optionale Parameter hint_size übergeben wird, liest die Funktion die angegebene Anzahl von Bytes aus der Datei sowie zusätzlich eine bestimmte Anzahl von Bytes, die ausreicht, um die Zeile zu vervollständigen, und bildet eine Liste von Zeilen aus dem Ergebnis. Die Funktion wird häufig für effizienteres zeilenweises Lesen großer Dateien verwendet (Datei wird nicht vollständig in den Speicher geladen). Es werden nur vollständige (abgeschlossene) Zeilen zurückgegeben.

Ein alternatives zeilenweises Lesen besteht darin, ein Dateiobjekt zu durchlaufen. Es ist schnell, speichereffizient und verfügt daher über einfachen Code:

Eine alternative Methode ist einfacher, bietet jedoch keine subtile Kontrolle über das Geschehen. Da beide Methoden auf unterschiedliche Weise mit der Zeilenpufferung arbeiten, sollten sie nicht gemischt werden.

f.write (Zeichenfolge) schreibt den Inhalt Streicher in eine Datei und gibt die Anzahl der geschriebenen Bytes zurück.

Um etwas anderes als eine Zeichenfolge in eine Datei zu schreiben, müssen Sie zuerst etwas in eine Zeichenfolge konvertieren:

f.tell () gibt eine Ganzzahl zurück, die die aktuelle Position in Datei f darstellt, gemessen in Bytes vom Dateianfang. Um die Position eines Dateiobjekts zu ändern, verwenden Sie f.seek (Verschiebung, woher) Die Position wird berechnet, indem der Versatz zum Referenzpunkt addiert wird. Der Referenzpunkt wird aus dem Parameter ausgewählt woher . Parameterwert 0 woher Misst den Versatz vom Dateianfang, ein Wert von 1 wendet die aktuelle Position in der Datei an und ein Wert von 2 verwendet das Dateiende als Referenzpunkt. Parameter woher kann weggelassen und standardmäßig auf 0 gesetzt werden, wobei der Dateianfang als Referenzpunkt verwendet wird.

Bei der Arbeit mit Textdateien (die ohne das Zeichen b in der Moduszeile geöffnet werden) ist die Suche nur ab dem Dateianfang zulässig (mit Ausnahme des Bildlaufs zum Dateiende mit der Suchfunktion (0, 2)).

Wenn Sie alle Aktionen für die Datei abgeschlossen haben, rufen Sie f.close () auf, um sie zu schließen und alle zum Öffnen dieser Datei verwendeten Systemressourcen freizugeben. Alle Versuche, das Dateiobjekt nach dem Aufruf von f.close () zu verwenden, lösen eine Ausnahme aus.

Es wird empfohlen, das Schlüsselwort with zu verwenden, wenn Sie mit Dateiobjekten arbeiten. Der Vorteil dieser Methode ist, dass die Datei nach der Ausführung des Blocks oder wenn während der Ausführung eine Ausnahme ausgelöst wurde, immer korrekt geschlossen wird. Darüber hinaus ist der resultierende Code viel kürzer als das entsprechende Formular mit Blöcken versuchen - endlich :

Dateiobjekte verfügen über einige zusätzliche Methoden wie isatty () und truncate (), die nicht häufig verwendet werden. Eine vollständige Übersicht über Dateiobjekte finden Sie in der Bibliotheksreferenz.

Beizmodul

Strings können einfach in eine Datei geschrieben und daraus gelesen werden. Bei Zahlen müssen Sie sich etwas mehr anstrengen: Die read () -Methode gibt nur die Zeilen zurück, die Sie an eine Funktion wie int () übergeben müssen, die eine Zeichenfolge der Form '123' annimmt und deren numerischen Wert zurückgibt: 123. Wenn Sie jedoch komplexere Datentypen wie Listen, Wörterbücher oder Klasseninstanzen beibehalten möchten, wird dies etwas verwirrend.

Anstatt den Programmierer zu zwingen, ständig Code für komplizierte Datentypen zu schreiben und zu debuggen, bietet Python ein Standardmodul namens pickle. Dies ist ein großartiges Modul, das jedes Python-Objekt (auch einige Formen von Python-Code!) Aufnehmen und in eine Zeichenfolgendarstellung konvertieren kann: Dieser Prozess wird aufgerufen Erhaltung (Beizen) Das Wiederherstellen eines Objekts aus seiner Zeichenfolgendarstellung wird aufgerufen Entkonservierung (Abbeizen): Eine Zeile, die das Objekt beschreibt, kann in einer Datei gespeichert, zu einigen Daten hinzugefügt oder über eine Netzwerkverbindung an einen Remotecomputer gesendet werden.

Wenn Sie ein Objekt x und ein Dateiobjekt f zum Schreiben im Binärmodus (Binärmodus, mit dem Parameter 'wb') geöffnet haben, ist dies der einfachste Weg bewahren Ein Objekt benötigt eine einzige Codezeile:

So behalten Sie das Objekt bei, sofern f das Objekt der Datei ist, die zum Lesen geöffnet ist (auch im Binärmodus mit dem Parameter 'rb'):

(Es gibt Optionen zum Ausführen dieser Vorgänge, die gültig sind, wenn Entkonservierung mehrere Objekte oder wenn Sie aufnehmen müssen eingemacht Daten zu einer Datei finden Sie in der Dokumentation zum Beizmodul in der Bibliotheksreferenz.)

pickle ist eine Standardmethode zum Erstellen von Python-Objekten, die von anderen Programmen oder zukünftigen Versionen desselben Programms wiederverwendet werden können. Für diese gibt es einen Fachbegriff: festes Objekt (beständiges Objekt) Da pickle häufig verwendet wird, stellen viele Autoren von Python-Erweiterungen sicher, dass neue Datentypen, wie z. B. Matrizen, korrekt sind eingemacht und eingemottet.

Herausgeber, Autor: Fred L. Drake Jr. (Fred L. Drake, Jr.) und andere

Sammlungen

Python hat coole eingebaute Datentypen, aber manchmal verhalten sie sich nicht genau so, wie sie möchten.

Glücklicherweise verfügt die in Python integrierte Bibliothek über ein Sammlungsmodul mit praktischen zusätzlichen Datentypen:

Haben Sie sich jemals gefragt, wie Sie in Python in ein Objekt hineinschauen und seine Attribute betrachten können? Natürlich dachten sie.

1. August um 10:00, Online, kostenlos

Verwenden Sie die Befehlszeile:

Dies kann nützlich sein, wenn Sie eine interaktive Sitzung in Python durchführen oder wenn Sie Objekte und Module, mit denen Sie arbeiten, dynamisch untersuchen möchten.

$ pip install emoji

Und tun Sie nicht so, als wollten Sie es nicht versuchen:

aus __zukunft__ importieren

Eine der Folgen der Popularität von Python ist, dass ständig neue Versionen entwickelt und veröffentlicht werden. Neue Versionen - neue Funktionen, aber nicht für Sie, wenn Sie veraltete verwenden.

Allerdings ist nicht alles so schlimm. Das Modul __future__ ermöglicht den Import der Funktionalität zukünftiger Versionen von Python. Es ist wie mit einer Zeitreise oder mit Magie:

Es kann für Programmierer schwierig sein, in der Geographie zu navigieren. Das Geopy-Modul vereinfacht jedoch Folgendes:

$ pip install geopy

Es funktioniert durch Abstrahieren der APIs verschiedener Geokodierungsdienste. Dieses Modul ermöglicht es, die vollständige Adresse des Ortes, seinen Längen- und Breitengrad und sogar seine Höhe herauszufinden.

Es hat auch eine nützliche Distanzklasse. Es berechnet die Entfernung zwischen zwei Orten in einer praktischen Maßeinheit.

Haben Sie Probleme und können sich nicht an die Lösung erinnern? Müssen Sie zu StackOverflow gehen, möchten aber das Terminal nicht verlassen?

Dann können Sie auf dieses Kommandozeilen-Tool nicht verzichten:

$ pip install howdoi

Stellen Sie eine Frage und er wird versuchen, die Antwort darauf zu finden:

Aber seien Sie vorsichtig: Es extrahiert Code aus den häufigsten Antworten in StackOverflow und liefert nicht immer nützliche Informationen:

$ howdoi verlasse vim

Das Inspect-Modul ist praktisch, um zu verstehen, was in Python hinter den Kulissen passiert. Sie können die Methoden sogar selbst aufrufen!

Im Folgenden wird die inspect.getsource () -Methode verwendet, um einen eigenen Quellcode auszugeben. Die inspect.getmodule () -Methode wird auch verwendet, um das Modul auszugeben, in dem es definiert ist.

Der letzte Befehl zeigt die Zeilennummer an, in der er sich befindet:

Natürlich kann dieses Modul, abgesehen von solchen einfachen Verwendungen, hilfreich sein, um zu verstehen, was Ihr Code tut. Sie können damit auch selbstdokumentierenden Code schreiben.

Die Jedi-Bibliothek wurde für die Vervollständigung und Analyse von Code entwickelt. Es beschleunigt das Schreiben von Code und macht ihn produktiver.

Wenn Sie Ihre IDE nicht entwickeln, werden Sie wahrscheinlich mehr daran interessiert sein, Jedi als Editorerweiterung zu verwenden. Zum Glück gibt es schon viele Möglichkeiten.

Возможно, вы уже встречались с Jedi — IPython использует эту библиотеку для автодополнения.

Когда изучаешь любой язык, на пути встречается множество краеугольных камней. В случае с Python понимание таинственного синтаксиса **kwargs можно считать одним из них.

Две звёздочки впереди объекта словаря дают возможность передавать в функцию содержимое этого словаря как именованные аргументы.

Ключи словаря — это имена аргументов, а значения передаются в функцию. Вам даже не обязательно называть его kwargs :

Это полезно в тех случаях, когда ваши функции должны обрабатывать именованные аргументы, не определённые заранее.

Прим.перев. Es kann auch nützlich sein, wenn Sie Wrapper-Funktionen schreiben, die alle Argumente an eine andere Funktion übergeben.

Generatoren auflisten

Eine weitere coole Python-Funktion, mit der Listen schnell erstellt werden können. Solche Ausdrücke machen es einfach, sauberen Code zu schreiben, der fast wie eine natürliche Sprache liest:

Python bietet eine gute Unterstützung für die funktionale Programmierung. Eine der nützlichsten Funktionen ist die map () -Funktion, insbesondere in Kombination mit Lambda-Funktionen:

Map () wendet hier eine einfache Lambda-Funktion auf jedes x-Element an und gibt ein Map-Objekt zurück, das in ein iterierbares Objekt wie eine Liste oder ein Tupel konvertiert werden kann.

newspaper3k

Wenn Sie ihn noch nicht getroffen haben, dann machen Sie sich bereit für das Zeitungsmodul, das Sie umhauen wird.

Es ermöglicht das Extrahieren von Artikeln und zugehörigen Metadaten aus vielen verschiedenen Quellen. Sie können Bilder, Text und Autorennamen extrahieren.

Es verfügt sogar über eine integrierte NLP-Funktionalität.

Wenn Sie in Ihrem nächsten Projekt BeautifulSoup oder eine andere Bibliothek für das Web-Scraping verwenden möchten, ist es daher besser, Zeit und Mühe zu sparen und die Zeitung zu installieren:

$ pip install newspaper3k

Bedienerüberlastung

Python unterstützt das Überladen von Operatoren - eines der Dinge, über die alle echten Informatiker sprechen.

Tatsächlich ist die Idee einfach. Haben Sie sich jemals gefragt, warum Sie in Python den Operator + sowohl zum Hinzufügen von Zahlen als auch zum Verketten von Zeichenfolgen verwenden können? Dahinter steckt nur die Bedienerüberlastung.

Sie können Objekte definieren, die auf beliebige Weise Standardoperatorzeichen verwenden. Auf diese Weise können Sie sie im Kontext der Objekte anwenden, mit denen Sie arbeiten:

Die Standard-Python-Funktion print () erledigt den Trick. Wenn Sie jedoch versuchen, ein großes verschachteltes Objekt anzuzeigen, sieht das Ergebnis nicht besonders gut aus.

Hier hilft das Modul aus der Standard-pprint-Bibliothek (pretty print). Mit ihm können Sie Objekte mit komplexer Struktur in lesbarer Form anzeigen.

Ein Muss für jeden Python-Entwickler, der mit benutzerdefinierten Datenstrukturen arbeitet:

Python unterstützt Multithreading, das vom Queue-Standardmodul unterstützt wird.

Sie können eine solche Datenstruktur als Warteschlange implementieren. Mit Warteschlangen können Sie Elemente nach einer bestimmten Regel hinzufügen und abrufen.

Mit den FIFO-Warteschlangen "first in, first out" können Sie Objekte in der Reihenfolge abrufen, in der sie hinzugefügt wurden. Aus den Warteschlangen "last in, first out" ("last in, first out", LIFO) können Sie die zuletzt hinzugefügten Objekte abrufen.

Schließlich können Sie mit Prioritätswarteschlangen Objekte gemäß ihrer Sortierreihenfolge abrufen.

Hier sehen Sie ein Beispiel für die Verwendung von Warteschlangen in der Multithread-Python-Programmierung.

Beim Definieren einer Klasse oder eines Objekts ist es hilfreich, eine "offizielle" Art der Darstellung des Objekts als Zeichenfolge hinzuzufügen. Zum Beispiel:

Dies vereinfacht das Debuggen erheblich. Hier ist alles, was Sie tun müssen:

Ca. Mit der __repr __ () -Methode können Sie eine Zeichenfolgendarstellung definieren, die für den Programmierer bestimmt und während des Debuggens bequem zu verwenden ist, und mit der __str __ () -Methode können Sie eine benutzerfreundliche Zeichenfolgendarstellung definieren, die auf der Programmoberfläche angezeigt werden kann.

Python ist eine großartige Skriptsprache. Aber manchmal verursachen die Standard-Betriebssystem- und -Unterprozessbibliotheken nur Kopfschmerzen.

Die sh Bibliothek kann eine nette Alternative sein.

Sie können damit jedes Programm als reguläre Funktion aufrufen. Dies ist nützlich, um verschiedene Aufgaben ausschließlich mit Python zu automatisieren:

Ca. Die sh-Bibliothek unterstützt nur Linux- und macOS-Plattformen, für die Arbeit unter Windows muss ein anderes Tool gesucht werden.

Geben Sie Anmerkungen ein

Python ist eine dynamisch typisierte Sprache. Sie müssen den Datentyp nicht angeben, wenn Sie Variablen, Funktionen, Klassen usw. definieren.

Dies beschleunigt den Entwicklungsprozess. Wenig ist jedoch so ärgerlich wie ein Laufzeitfehler, der durch eine einfache Typinkongruenz verursacht wird.

Seit Python 3.5 können Sie beim Definieren einer Funktion Typanmerkungen hinzufügen:

Sie können sogar Typaliase definieren:

Obwohl ihre Verwendung optional ist, kann der Code mit Hilfe von Typanmerkungen verständlicher gemacht werden.

Sie können auch Tools zur Typprüfung verwenden, um TypeError-Fehler abzufangen.

Mit dem Standardmodul uuid können Sie schnell und einfach eine UUID (Universal Unique Identifier) ​​generieren.

Wir erstellen also eine zufällige 128-Bit-Zahl, die mit ziemlicher Sicherheit eindeutig sein wird.

Es gibt mehr als 2²² mögliche UUIDs. Das sind mehr als 5 undecillion oder 5.000.000.000.000.000.000.000.000.000.000.000.000.

Die Wahrscheinlichkeit, in einer bestimmten Menge Duplikate zu finden, ist äußerst gering. Selbst mit einer Billion UUIDs ist die Wahrscheinlichkeit, dass es unter ihnen ein Duplikat gibt, viel geringer als eins zu einer Milliarde.

Nicht schlecht für zwei Codezeilen.

Virtuelle Umgebungen

Oft arbeiten Python-Programmierer an mehreren Projekten gleichzeitig. Leider hängen manchmal zwei Projekte von unterschiedlichen Versionen derselben Abhängigkeit ab. Welches soll installiert werden?

Glücklicherweise unterstützt Python virtuelle Umgebungen, die das Beste aus beiden Welten bieten. Geben Sie an der Eingabeaufforderung Folgendes ein:

Jetzt können Sie verschiedene unabhängige Versionen von Python auf demselben Computer haben.

Wikipedia hat eine coole API, mit der Sie auf eine konkurrenzlose Quelle völlig kostenloser Informationen zugreifen können.

Das Wikipedia-Modul macht den Zugriff auf diese API fast zu bequem:

Wie eine echte Site bietet das Modul Unterstützung für viele Sprachen, löst die Mehrdeutigkeit von Seiten auf, erhält eine zufällige Seite und sogar die donate () -Methode.

Humor ist ein Schlüsselmerkmal von Python. Am Ende wurde die Sprache nach der britischen Comedy-Show Monty Pythons Flying Circus benannt. An vielen Stellen der offiziellen Dokumentation finden Sie Hinweise auf die berühmtesten Folgen der Show.

Ein Sinn für Humor endet natürlich nicht mit der Dokumentation. Versuchen Sie, die folgende Zeile einzugeben:

Bleib du selbst, Python. Bleib du selbst

YAML bedeutet "YAML ist keine Auszeichnungssprache" ("YAML ist keine Auszeichnungssprache"). Dies ist eine Datenformatierungssprache, die eine Obermenge von JSON darstellt.

Im Gegensatz zu JSON kann YAML komplexere Objekte speichern und auf eigene Elemente verweisen. Sie können dort auch Kommentare schreiben, wodurch YAML für Konfigurationsdateien geeignet ist.

Mit dem PyYAML-Modul können Sie YAML in Python verwenden. Sie können es folgendermaßen installieren:

$ pip install pyyaml

Und dann importieren:

Mit PyYAML können Sie beliebige Python-Objekte und Instanzen beliebiger benutzerdefinierter Klassen speichern.

Zum Schluss noch eine coole Sache. Mussten Sie jemals ein Wörterbuch aus zwei Listen erstellen?

Die integrierte zip () -Funktion nimmt mehrere iterierbare Objekte auf und gibt eine Folge von Tupeln zurück. Jedes Tupel gruppiert die Elemente von Objekten nach ihrem Index.

Sie können die Umkehrung von zip () mit zip (*) durchführen.

Und welche Techniken oder nützlichen Bibliotheken kennen Sie? Teilen Sie in den Kommentaren.

  1. 0, 0.0 ↩
  2. 0, 1.0 ↩
  3. 0, 1.0 ↩
  4. 0, -2.0 ↩

Wie Yandex Ihre Daten und Ihr maschinelles Lernen verwendet, um Dienste zu personalisieren - lesen und sehen Sie sich YaC 2019 an.

Sehen Sie sich das Video an: KI programmieren in 10 Minuten l Tutorial Teil 1. Breaking Lab. Fast Forward Science 2019 (Juni 2021).

Pin
Send
Share
Send
Send