Der Inhalt des Python-Tutorials (Kapitel 4) ist in einem Aufzählungszeichen zusammengefasst.
Vorheriger Artikel: Eine Zusammenfassung des Inhalts des Python-Tutorials (Kapitel 3)
Einführung
Grundlegende Prüfung zur Python3 Engineer-Zertifizierung Als Gegenmaßnahme ist dies ein persönliches Memo, das den Inhalt des Python-Tutorials (Buches) in leicht zu merkenden Bulletins zusammenfasst.
Referenzmaterial
Python-Tutorial: https://docs.python.org/ja/3/tutorial/
Kapitel 4: https://docs.python.org/ja/3/tutorial/controlflow.html
Bücher: https://www.oreilly.co.jp/books/9784873117539/
"Kapitel 4 Kontrollstruktur-Werkzeug"
--Python3 Engineer Certification Basic Exam Score
―― 9/40 Fragen (22,5%) ☆☆☆☆☆ (Bedeutung: groß)
--Thema
- Bedingter Zweig
- Schleife
--pass Anweisung
- Funktionsdefinition
- Codierungsstandard (PEP8)
4.1 if-Anweisung
- ** if, elif, else ** kann verwendet werden.
- Indizierte Blöcke in der Bedingung.
--wenn auf elif eine Bedingung und ein Doppelpunkt folgen :.
- Sie können mehrere Elifen schreiben.
- Nach dem folgt ein Doppelpunkt :.
- Übrigens wird Python else auch in Schleifen wie for und while verwendet (später beschrieben).
- In Python gibt es keine switch-Anweisung.
(Referenz) while-Anweisung
- Im Tutorial ["3.2 Programmieren, der erste Schritt"](https://qiita.com/Wakii/items/cc4158d602a7646758d9#32-%E3%83%97%E3%83%AD%E3%82%B0% E3% 83% A9% E3% 83% 9F% E3% 83% B3% E3% 82% B0% E3% 81% AF% E3% 81% 98% E3% 82% 81% E3% 81% AE% E4% Die in B8% 80% E6% AD% A9) beschriebene Syntax.
- Persönlich ist es einfacher, sich daran zu erinnern, deshalb werde ich es hier beschreiben.
- ** while ** Kann als bedingter Ausdruck geschrieben werden **: **.
- Wiederholen Sie die Ausführung, solange der bedingte Ausdruck wahr ist.
--Indent den Körperteil der Schleife.
- Es ist auch möglich, während zu nisten und währenddessen hinein zu legen.
4.2 zur Aussage
--Python für verarbeitet alle Elemente in ** Sequenzen (Listen und Zeichenfolgen) ** in Indexreihenfolge.
- ** für ** w ** in ** Worten **: ** kann geschrieben werden als.
--Indent den Körperteil der Schleife.
--Wenn Sie das geloopte Element ändern, wird empfohlen, die Kopie der Sequenz zu schleifen.
--Verwenden Sie die ** Slice-Notation (Slicing) **, um die Sequenz zu kopieren. (-> Kapitel 3)
- Es ist auch möglich zu nisten und zu platzieren, während man drinnen ist.
4.3 range () Funktion
- Die Funktion ** range () ** gibt ein Objekt mit Gleichheitsfolge zurück.
- Kann als Bereich geschrieben werden (Start, Ende, Inkrement).
- range(5) #[0, 1, 2, 3, 4]
- range(1, 5) #[1, 2, 3, 4]
- range(0, 10, 3) #[0, 3, 6, 9]
- Durch Kombinieren von und range () kann eine numerische Iteration erreicht werden.
-
- für idx im Bereich (5): * Wiederholen Sie den Vorgang, während #idx zwischen 0 und 4 liegt.
- Das von range () zurückgegebene Objekt ist keine Liste, sondern ** iterierbar **.
Strukturen und Funktionen, die auf wiederholbare Objekte abzielen, wie z. B. --for, werden als ** Iteratoren ** bezeichnet.
-Die Funktion ** list () ** kann verwendet werden, um eine Liste aus einem wiederholbaren Text zu erstellen.
-
- test = list (range (5)) * #test ist eine Liste von [0, 1, 2, 3, 4].
--list () ist auch ein Repeater.
4.4 break and continue-Anweisungen, else-Klausel in der Schleife
- ** break ** durchbricht die innerste Schleife (für oder während), die sie umgibt.
- ** weiter ** überspringt die nachfolgende In-Loop-Verarbeitung und startet die nächste Iteration.
- Das ** else: ** der Schleife wird ausgeführt, wenn break nicht innerhalb der Schleife aufgerufen wird.
--Für und während und sonst werden mit dem gleichen Einzug beschrieben.
4.5 Pass-Anweisung
- ** pass statement ** macht nichts.
- Syntaktisch ist eine Anweisung erforderlich, aber wenn nichts zu tun ist (Warten auf Tastaturunterbrechung usw.), schreiben Sie sie.
4.6 Funktionsdefinition
- ** def ** Funktionsname ** (** Formale Argumentliste **): Kann geschrieben werden als **.
--Indent den Körperteil der Funktion.
- Der erste Satz des Funktionskörpers lautet ** [docstring](https://qiita.com/Wakii/items/39fb6eee9250c4196a61#476-%E3%83%89%E3%82%AD%E3%83%A5 % E3% 83% A1% E3% 83% B3% E3% 83% 86% E3% 83% BC% E3% 82% B7% E3% 83% A7% E3% 83% B3% E6% 96% 87% E5 % AD% 97% E5% 88% 97-docstiring) ** kann geschrieben werden.
- Als Argument der Funktion wird ein Verweis auf das Objekt übergeben.
- Mit anderen Worten, die auf der Funktionsseite vorgenommenen Änderungen werden auf der Anruferseite wiedergegeben.
- Ein Funktionsaufruf (Ausführung) erstellt eine neue ** lokale Symboltabelle ** für diese Funktion.
- ** Symboltabelle ** ist ein Verzeichnis im Namespace, und die Symboltabelle für die lokalen Variablen der Funktion ist die lokale Symboltabelle.
--Wenn in einer Funktion zugewiesen, wird der Wert in der lokalen Symboltabelle gespeichert.
- Die an die Funktion übergebenen Argumente (Objektreferenzen) werden ebenfalls in der lokalen Symboltabelle gespeichert.
- Wenn eine Funktion eine Funktion aufruft, wird eine weitere neue lokale Symboltabelle erstellt.
- Wenn Sie einer Variablen einen Funktionsnamen zuweisen, können Sie die Funktion mit diesem Variablennamen aufrufen.
- Funktionen werden wie Variablen zur aktuellen Symboltabelle hinzugefügt, wenn sie definiert sind.
- Der Interpreter erkennt es als einen Wert des Typs, der als benutzerdefinierte Funktion bezeichnet wird.
- ** return-Anweisung ** gibt einen Wert zurück und kehrt von der Funktion zurück.
- Wenn für die Rückgabe kein Wert angegeben wird, wird ** None ** zurückgegeben.
- Gibt keine zurück, auch wenn das Ende der Funktion ohne Rückgabe erreicht ist.
- Keiner wird normalerweise vom Dolmetscher ignoriert.
- Übrigens, obwohl es nicht in 4.6 geschrieben ist, heißt das in der Funktionsdeklaration definierte Argument ** formales Argument ** (Parameter), und das im Funktionsaufruf übergebene Argument heißt ** tatsächliches Argument ** (Argument).
4.7 Weiter zur Funktion
4.7.1 Standardwert des Arguments
- Sie können den ** Standardwert ** für Funktionsargumente festlegen.
- Das Argument mit dem Standardwert kann weggelassen werden.
- Der Standardwert wird zum Zeitpunkt und Umfang der Definition der Funktion nur einmal ausgewertet.
- Wenn Sie variable Objekte (Listen, Wörterbücher, Klasseninstanzen usw.) als Standardwerte festlegen, können sich die Standardwerte bei jedem Aufruf der Funktion ändern.
- Als Gegenmaßnahme gibt es eine Methode, um den Standardwert des Arguments auf None zu setzen und das initialisierte Objekt dem Argument zuzuweisen, wenn None in der Funktion übergeben wird.
4.7.2 Schlüsselwortargumente
- ** Es gibt zwei Arten von Schlüsselwortargumenten **:
- Argumente, die zum Zeitpunkt des Aufrufs in Form von Schlüsselwort = Wert übergeben wurden ... Ein Schlüsselwort / Wert-Paar
- Im Wörterbuchformat empfangene Argumente mit ** links neben dem Namen ... Mehrere Schlüsselwort / Wert-Paare
- Für Schlüsselwortargumente werden die folgenden ** Positionsargumente ** genannt.
- Argumente, die nur Werte übergeben ... ein Argument
- In wiederholbarer Form empfangene Argumente mit * links neben dem Namen ... Mehrere Argumente
- Wenn Sie ein Argument folgendermaßen übergeben, tritt ein Fehler auf.
--Wenn Sie ein Schlüsselwortargument übergeben, das nicht in der formalen Argumentliste enthalten ist
--Wenn als Positionsargument und als Schlüsselwortargument für ein Argument übergeben
--Wenn das Schlüsselwortargument vor dem Positionsargument übergeben wird
4.7.3 Liste der optionalen Argumente
- Argumente im Taple-Format sind eine variable Anzahl von Argumenten.
- Eine variable Anzahl von Argumenten sollte am Ende der formalen Argumentliste stehen.
- Sie können ein normales Argument davor stellen.
- Wenn Sie ein normales Argument danach setzen, wird es als Teil eines Arguments mit variabler Länge behandelt.
-Im Fall des * args-Formats sind alle formalen Argumente danach Schlüsselwortargumente.
- ** Taple ** sind Sequenzdaten, die einer Liste ähnlich sind, aber unveränderlich sind und häufig eine Mischung von Elementen verschiedener Typen enthalten. (-> [5.3 Beispiele und Sequenzen](https://qiita.com/Wakii/items/34585aa75bf8c6a5b219#53-%E3%82%BF%E3%83%97%E3%83%AB%E3%81%A8 % E3% 82% B7% E3% 83% BC% E3% 82% B1% E3% 83% B3% E3% 82% B9))
4.7.4 Argumentliste entpacken
- Das Abrufen jedes Listenelements, Tapples und Wörterbuchs und das Übergeben an eine Variable oder ein Argument wird als ** entpacken ** bezeichnet.
--Listen und Taples werden entpackt und zu Positionsargumenten, indem links neben dem Namen * hinzugefügt wird.
--Dictionary wird entpackt und durch Hinzufügen von ** links neben dem Namen zu einem Schlüsselwortargument.
- Wenn Sie beispielsweise die Liste args = [0, 10, 3] in Form von * range (0, 10, 3) * an die Funktion range () übergeben möchten, können Sie * range (* args) * schreiben.
4.7.5 Lambda-Ausdruck
- ** Eine kleine anonyme Funktion (Lambda-Funktion) kann mit dem Lambda-Schlüsselwort ** geschrieben werden.
- Lambda-Funktionen können überall dort verwendet werden, wo ein Funktionsobjekt benötigt wird.
- Als syntaktische Einschränkung können Sie nur einen einzigen Ausdruck verwenden.
- Wie bei einer normalen Funktionsdefinition können Sie Variablen in dem sie umgebenden Bereich aus der Lambda-Funktion verwenden.
- Wenn Sie beispielsweise eine Lambda-Funktion in der Funktion func () definieren, können Sie in der Lambda-Funktion auf die lokale Variable func () verweisen.
4.7.6 Dokumentationszeichenfolge (docstiring)
- Die erste Zeile sollte immer eine kurze und präzise Zusammenfassung des Objektzwecks sein.
- Die erste Zeile beginnt mit einem Großbuchstaben und endet mit einem Punkt.
――Wenn Sie kontinuierlich schreiben, sollte die zweite Zeile leer sein und die Zusammenfassung und andere Beschreibungen sollten getrennt werden.
- Der Python-Parser entfernt nicht die Einrückung mehrzeiliger Zeichenfolgenliterale.
- Wenn Sie es entfernen möchten, verwenden Sie das Tool, das das Dokument verarbeitet.
4.7.7 Funktionsanmerkung (Funktionsanmerkung)
- ** Funktionsanmerkung ** ist eine Metadateninformation.
- Vollständig optional und in benutzerdefinierten Funktionen verwendet.
- Wird als Wörterbuch im Attribut ** \ _ \ _ annotations__ ** der Funktion gespeichert.
- Auf die Definition der Argumentanmerkung folgt ein Doppelpunkt und ein Ausdruck nach dem Argumentnamen.
--Die Definition der Rückgabewert-Annotation besteht darin, ein Literal "->" und einen Ausdruck zwischen die formale Argumentliste der def-Anweisung und den Doppelpunkt zu setzen.
--Beispiel: * >>> def f (Schinken: str, Eier: str = 'Eier') -> str: *
4.8 Verbindung zwischen Vorhängen: Codierungsstil
- Der Python-Codierungsstandard enthält ** PEP8 **. Einige Auszüge unten.
――4 Leerzeichen eignen sich genau zum Einrücken. Verwenden Sie keine Registerkarten, da diese verwirrend sein können.
- Zeilen mit maximal 79 Zeichen umbrechen.
- Verwenden Sie Leerzeilen, um Funktionen, Klassen und große Blöcke innerhalb von Funktionen zu trennen.
- Wenn möglich, machen Sie die Kommentarzeile unabhängig.
- [docstring](https://qiita.com/Wakii/items/39fb6eee9250c4196a61#476-%E3%83%89%E3%82%AD%E3%83%A5%E3%83%A1%E3%83% B3% E3% 83% 86% E3% 83% BC% E3% 82% B7% E3% 83% A7% E3% 83% B3% E6% 96% 87% E5% AD% 97% E5% 88% 97- docstiring) wird verwendet.
- Setzen Sie ein Leerzeichen um den Operator oder nach dem Komma, aber nicht nur innerhalb ().
- Geben Sie Klassen und Funktionen eine einheitliche Benennung.
- Klasse ist CamelCase
- Funktionen und Methoden sind Kleinbuchstaben mit Unterzählern
- Verwenden Sie immer self als erstes Argument der Methode.
- Die beste Codierung ist UTF-8 (Python-Standard) oder ASCII.
- Verwenden Sie keine Nicht-ASCII-Zeichen für Bezeichner.
Nächster Artikel: Eine Zusammenfassung des Inhalts des Python-Tutorials (Kapitel 5)