Selbst Anfänger möchten sagen "Ich verstehe Python voll und ganz"

Mein Kind "Ogyaaogyaa !! Verstehe Python überhaupt nicht !!"

Ich sagte: "Oh, mein Kind, das ein Anfänger von Python ist, versteht Python nicht und ich habe es heute nicht ..."

Ich sagte: "Jeder kann nicht einfach ein Programm in Python erstellen, aber ich glaube nicht, dass die super bequeme Funktion deswegen bekannt ist. Außerdem verstehe ich die Bedeutung nicht, wenn ich versuche, die bequeme Funktion zu verwenden." Ich weiß es nicht. "

Ich sagte: "Deshalb werde ich dieses Mal eine Grammatik einführen, die relativ neu, aber nicht sehr bekannt ist! Jeder scheint ein vollständiges Verständnis von Python anzustreben!"

Inhaltsverzeichnis

Tipp Hinweis

Ich sagte: "Zuerst wurden die in Version 3.5 hinzugefügten Typhinweise hinzugefügt!"

I "Wissen Sie alle, dass Python eine ** dynamisch typisierte ** Sprache ist?"

Ich sagte: "** Dynamische Eingabe ** bedeutet, dass der Typ automatisch ermittelt wird, ohne den Typ anzugeben!"

Ich sagte: "Zum Beispiel deklarieren Sie in der ** statisch typisierten ** Sprache solche Variablen."

var name str = "nokonoko" //str Typ
var age int = 5 //int type

Ich sagte: "Ich frage mich, ob ich im Voraus entscheiden soll, welcher Wert in die Variable eingegeben wird. Wenn ich einen anderen Typ als den angegebenen Typ eingebe, tritt ein Fehler auf."

I "Auf der anderen Seite Python ..."

name = "nokonoko" #str Typ
age = 5 #int type

Ich sagte: "Auch wenn Sie sich nicht die Mühe machen, den Typnamen so zu deklarieren, können Sie die Variable einfach normal deklarieren und den Typ ohne Erlaubnis festlegen! Python ist praktisch!"

Ich sagte: "Wenn Sie sich das ansehen, ist ** statisch typisiert ** nur ärgerlich ..." Aber warum gibt es immer noch eine statisch typisierte Sprache (eher ist statisch populärer ...?) ... weil es Verdienst hat. Vielleicht ist es ungefähr so viel. "

--Speed: Der Vorgang ist schnell, da die Typbestimmung für den Code bereits abgeschlossen wurde. --Sicherheit: Ein Typ verringert die Wahrscheinlichkeit, dass ein scheinbar unbekannter Fehler auftritt.

Ich sagte: "** Kleiner Maßstab **, wenn Sie es vorerst bewegen, ist es in Ordnung **, ** Geschwindigkeit spielt keine Rolle **, ** wenn Sie sich selbst entwickeln **, ist Ihnen der Typ egal, aber normalerweise ist es so. Es ist nicht. "

Ich sagte: "Es scheint, dass Python geboren wurde, um einfache Skripte zu schreiben, aber aus einer so populären Situation heraus scheint es eine starke Forderung nach einer statischen Typisierung von Python zu geben. Weil es schwierig ist ... Ich wurde mit einem ** Tipp ** geboren! "

Ich sagte: "Es wird so verwendet."

def hello(name: str) -> str:
    return f"Hello {name}"

Ich sagte: "Sie können die Typen von Variablen und Funktionsargumenten festlegen und Werte zurückgeben! Wenn Sie jetzt Code mit IDE usw. schreiben, werden Sie gewarnt, wenn Sie Variablen unterschiedlichen Typs als Argumente verwenden. damit!!"

Ich sagte: "Aber es ist nicht wirklich eine getippte Sprache, sie kann ausgeführt werden, also sei vorsichtig!"

Zusammenfassung

Referenz: Eingabe --- Unterstützung für Typhinweise

Docstring

Ich sagte: "Als nächstes kommt Docstring! Dies ist auch eine nützliche Funktion! Mal sehen, was es ist!"

def hello(name):
    """Begrüßen Sie die Person, die Sie in das Argument eingebracht haben"""
    return f"Hello {name}"

Ich sagte: "Sie können ein Dokument in Ihren Code einbetten, indem Sie eine in drei Anführungszeichen eingeschlossene Zeichenfolge in eine Funktion (oder ein Klassenmodul) wie diese einfügen!"

Ich sagte: "Dies unterscheidet es von nur einem Kommentar, aber die hier eingebettete Zeichenfolge wird nicht in der speziellen Methode" doc "dieses Objekts gespeichert."

Ich sagte: "Das können Sie mit" help () "im interaktiven Modus tun, um die Dokumentation oder Sphinx anzuzeigen. Wenn Sie verwenden, wird automatisch ein Dokument erstellt und Sie erhalten viele Angebote! Es unterscheidet sich ein bisschen von nur einem Kommentar. "

>>> help(hello)
Help on function hello in module __main__:
hello(name)
Begrüßen Sie die Person, die Sie in das Argument eingebracht haben

Ich sagte: "Mehr !!!!!! Durch Einbetten mehrerer Zeilen Docstring können Sie die Typhinweise schreiben, die ich zuvor in Docstring erklärt habe!"

Ich mag das!"

def hello(name):
    """Begrüßen Sie die Person, die Sie in das Argument eingebracht haben

    Args:
        name(str):Der Name der Person, die Sie begrüßen möchten

    Returns:
        str:Schöne Grüße
    """
    return f"Hello {name}"

Ich sagte: "Sie können den Typ mit IDE usw. überprüfen, genau wie Sie den Typhinweis damit setzen!"

Ich sagte: "Das, was ich oben geschrieben habe, heißt" Google-Stil ", aber ich kann verschiedene andere Dinge als die Argumente und Rückgabewerte schreiben, und es gibt auch andere Möglichkeiten, es zu schreiben. Wenn Sie also neugierig sind, probieren Sie es aus! ""

Ich sagte: "Es ist praktisch, um mit einer großen Anzahl von Menschen zu entwickeln, also sollte jeder es versuchen!"

Zusammenfassung

Referenz: PEP 257 - Docstring-Konventionen

f-string

I "Als nächstes wird der in Version 3.6 hinzugefügte F-String (F-String und!) Hinzugefügt."

Ich sagte: "Es gibt zwei Möglichkeiten, eine Variable in eine Zeichenkette einzubetten.

>>> name = "nokonoko"
>>> age = 5
>>> print("{}Ist{}ich bin alt".format(name, age))
Nokiaoko ist 5 Jahre alt

Ich "toka"

>>> print("%s ist%s Jahre alt" % (name, age))
Nokiaoko ist 5 Jahre alt

Ich "Tokayana".

Ich sagte: "Auf diese Weise ... ist es alt."

Ich "Ich kann es jetzt nicht so machen!"

>>> print(f"{name}Ist{age}ich bin alt")
Nokiaoko ist 5 Jahre alt

Ich sagte: "Doya. Ich habe alle Methoden und Symbole, die ich nicht verstehe, gelöscht und es einfacher gemacht!"

Ich sagte: "Mehr. Sie können dies mit Python 3.8 tun."

>>> print(f"name={name}, age={age}") # 3.Bis zu 7
name=nokonoko, age=5

>>> print(f"{name=}, {age=}") # 3.Ab 8
name='nokonoko', age=5

Ich sagte: "Durch Einfügen von" Variablen "und" = "in {} werden die Variablennamen automatisch angezeigt! Dies ist beim Debuggen hilfreich!"

Ich sagte: "Lassen Sie uns dies aktiv nutzen, wenn Sie bequem ein neues Projekt erstellen!"

Zusammenfassung

Referenz: 2.4.3. Formatierte Zeichenfolgenliterale

Seiuchi-Betreiber

I "Als nächstes wird der ** Seiuchi-Operator ** in Version 3.8 hinzugefügt!"

Ich sagte: "Der Seiuchi-Operator ist ein Zuweisungsoperator": = ", und es scheint, dass er aufgerufen wurde, weil er von der Seite betrachtet wie Seiuchis Augen und Zähne aussieht!"

Ich "... nun, ich kann es nicht sehen !!!"

Ich sagte: "Eine Funktion, mit der Sie sie vorerst verlassen und einer Variablen in einer if- oder for-Anweisung zuweisen können! Es ist so!"

# 3.Bis zu 7
>>> name = "nokonoko"
>>> if name == "nokonoko":
...     print("gutaussehend, wie")
... else:
...     print("Es sieht nicht gut aus")
gutaussehend, wie

# 3.Ab 8
if name := "nokonoko" == "nokonoko":
...     print("gutaussehend, wie")
... else:
...     print("Es sieht nicht gut aus")
gutaussehend, wie

Ich sagte: "Nun, es ist ein natürliches Ergebnis."

Ich sagte: "Es ist eine Funktion, mit der Sie einer Variablen in einem bedingten Ausdruck wie diesem zuweisen können, und es ist eine hervorragende Funktion, die redundante Ausdrücke verkürzen kann."

Ich sagte: "Dies ist jedoch aufgrund seiner wirklich neuen Funktionen nicht so bekannt. Je nachdem, wie es verwendet wird, kann es die Lesbarkeit beeinträchtigen. Verwenden Sie es daher mit Vorsicht!"

Ich sagte: "Besonders in Python, ** wenn und für Anweisungen keinen lokalen Bereich erstellen **, seien Sie also vorsichtig!"

Zusammenfassung

Referenz: PEP 572 - Zuweisungsausdrücke

Einschlussnotation

I "Als nächstes kommt die Einschlussnotation!"

Ich sagte: "Dies ist eine Funktion zum einfachen Erstellen eines Objekts (mit einem Verweis auf ein anderes Objekt), in dem mehrere Werte gespeichert sind, z. B. eine Variable namens ** Containerobjekt **."

Ich sagte: "Am häufigsten wird die Listeneinschlussnotation verwendet."

Listeneinschlussnotation

#Erstellen Sie eine neue Liste
>>> numbers = []
>>> for i in range(10):
...     numbers.append(i)
>>> numbers
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

#Wenn Sie die Einschlussnotation verwenden, sieht es so aus
>>> numbers = [i for i in range(10)]
>>> numbers
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

Ich sagte: "Es ist eine hervorragende Sache, die es ermöglicht, ein Array mit einer for-Anweisung in einer Zeile zu definieren!"

Ich sagte: "Und Sie können auch eine if-Anweisung einbetten!"

#Gewöhnlich zur Aussage
>>> numbers = []
>>> for i in range(10):
...     if i % 2 == 0:
...         numbers.append(i)
...         
>>> numbers
[0, 2, 4, 6, 8]

#Einschlussnotation
>>> numbers = [i for i in range(10) if i % 2 == 0]
>>> numbers
[0, 2, 4, 6, 8]

Ich sagte: "Außerdem schließt es im Gegensatz zur for-Anweisung den Geltungsbereich!"

#Gewöhnlich zur Aussage
>>> numbers = []
>>> for i in range(10):
...     numbers.append(i)
#Auf die in der for-Anweisung definierte Variable i kann verwiesen werden
>>> i
9

#Einschlussnotation
>>> numbers = [i for i in range(10)]
#Eine Ausnahme tritt auf, wenn die Variable i undefiniert ist
>>> i
Traceback (most recent call last):
  File "<input>", line 1, in <module>
NameError: name 'i' is not defined

Ich sagte: "Da es lästige Fehler verhindert, verwenden Sie die Einschlussnotation so oft wie möglich, wenn Sie eine neue Liste erstellen!"

Ich sagte: "Übrigens kann die Inklusivnotation für alles andere als die Liste verwendet werden! Ich werde das auch vorstellen!"

Wörterbucheinschlussnotation

>>> dict_obj = {str(i): i for i in range(10)}
>>> dict_obj
{'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}

Legen Sie die Einschlussnotation fest

>>> set_obj = {i for i in range(10)}
>>> set_obj
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}

Generatortyp

Ich denke: "Wenn Sie das abschließende Symbol aus dem bisherigen Ablauf in" () "ändern, können Sie es mit Tapple Inclusion Notation erstellen, aber dies ist eine kleine Ausnahme, Sie können einen Generator erstellen. Seien Sie vorsichtig, weil es kompliziert ist!"

gen_obj = (i for i in range(10))
gen_obj
<generator object <genexpr> at 0x10df04580>

Ich sagte: "Es gibt verschiedene inklusive Notationen, und alle sind praktisch, also benutzen Sie sie bitte!"

Zusammenfassung

Referenz: 5. Datenstrukturen

Generator

Ich sagte: "Als nächstes kommt ein Generator! Dies ist eine Funktion, die es schon lange gibt, die Anfänger jedoch nicht wirklich verstehen. Wenn Sie sich nicht die Mühe machen, einen Generator zu erstellen, können Sie eine Liste erstellen ..."

Ich dachte: "Ich dachte, aber ich habe das Gefühl, dass ich in den folgenden zwei Punkten ein großer Erfolg sein werde."

--Wenn Sie eine Endlosschleife erstellen möchten, ohne den Prozess anzuhalten --Wenn Sie eine große Menge an Textdaten verarbeiten möchten

Ich "zum Beispiel ..."

while True:
    print("Gibt einen Wert zurück")

Ich sagte: "Wenn ich Code schreibe, gehe ich sofort in eine Endlosschleife. Es ist möglich, dass das System weiterhin verbraucht wird und das System ausfällt. Deshalb achte ich normalerweise darauf, dies nicht zu tun."

Ich sagte: "Dasselbe kann passieren, selbst wenn Sie auf eine Endlosschleife beschränkt sind oder wenn Sie eine große Liste mit umfangreichen mathematischen Berechnungen erstellen."

Ich sagte: "Aber wenn Sie den Generator wie unten gezeigt verwenden, müssen Sie den Speicher nicht überfordern, ein neues Element zu erstellen, bis das nächste Element erforderlich ist (Aufruf der speziellen Methode" next ")!"

Ich sagte: "Es gibt zwei Möglichkeiten, einen Generator zu erstellen, speziell auf diese Weise!"

#So erstellen Sie eine Funktion
>>> def my_gen():
...     x = 0
...     while True:
...         yield x
...         x += 1
#Der Rückgabewert ist Generator
>>> my_gen()
<generator object my_gen at 0x10df04510>

>>> for i in my_gen():
...     print(i)
0
1
2
3
...

#So verwenden Sie einen Generatorausdruck
>>> my_gen = (i for i in range(10000) if i % 2 == 0)
>>> for i in my_gen:
...     print(i)   
0
2
4
6
8

Ich sagte: "Der Rückgabewert des Generators ist ein Iterator, daher kann er in der for-Anweisung verwendet werden!"

Ich sagte: "Es scheint sehr praktisch zu sein, wenn Sie CSV mit 1 Million Datensätzen lesen und verarbeiten möchten!"

Ich sagte: "Der Generator kann übrigens auch in andere Containerobjekte konvertiert werden! Aber seien Sie vorsichtig, da er zum Zeitpunkt der Generierung viel Speicher verbrauchen kann!"

>>> my_gen = (i for i in range(10000) if i % 2 == 0)
>>> my_list = list(my_gen)
>>> type(my_list)
<class 'list'>
>>> my_list
[0, 2, 4, 6, 8, 10, 12, 14, 16,...9992, 9994, 9996, 9998]

Zusammenfassung

Allgemeiner Kommentar

Ich sagte: "Wie hast du das gemacht? Du bist einem Python-Vollständigen näher gekommen!"

Mein Kind "Ogyaaogyaa !! Python scheint super einfach !!"

Ich sagte: "Ja. Es scheint, dass mein Kind Python vollständig verstehen könnte. Sie vor dem Bildschirm werden Ihr Bestes tun, um ein Mann zu werden, der Python vollständig versteht!"

Oshimai

Recommended Posts

Selbst Anfänger möchten sagen "Ich verstehe Python voll und ganz"
Auch mit JavaScript möchte ich Python `range ()` sehen!
Ich möchte die Grundlagen von Bokeh vollständig verstehen
Ich möchte systemd grob verstehen
Ich möchte mit Python debuggen
Ich möchte ein Glas aus Python verwenden
Ich möchte eine Python-Umgebung erstellen
Ich möchte Protokolle mit Python analysieren
Ich möchte mit aws mit Python spielen
[Python] Pandas in 10 Minuten vollständig zu verstehen
[Einführung] Ich möchte mit Python einen Mastodon-Bot erstellen! 【Anfänger】
Ich möchte, dass CAPTCHA HIWAI-Wörter sagt
Ich möchte Dunnetts Test in Python machen
Ich möchte MATLAB feval mit Python verwenden
Ich möchte mich mit Schlüsselwortargumenten von Python merken
Ich möchte mit Python ein Fenster erstellen
Ich möchte mit Python eine E-Mail von Google Mail senden.
[Python] Ich möchte 7DaysToDie von Discord aus verwalten! 1/3
Ich möchte datetime.datetime.now () auch mit pytest verspotten!
Ich möchte ein Spiel mit Python machen
Ich möchte verschachtelte Dicts in Python zusammenführen
Ich möchte Temporäres Verzeichnis mit Python2 verwenden
Ich möchte Ceres Solver aus Python verwenden
#Unresolved Ich möchte Gobject-Introspection mit Python3 kompilieren
Ich möchte APG4b mit Python lösen (Kapitel 2)
Ich möchte die Produkte verkaufen, die ich durch Python Scraping Mercari aufgelistet habe
[Python] Ich möchte 7DaysToDie von Discord aus verwalten! 2/3
Ich möchte C ++ - Code aus Python-Code erstellen!
Ich möchte mit Python in eine Datei schreiben
Ich möchte den Fortschritt in Python anzeigen!
Ich möchte in Python schreiben! (1) Überprüfung des Codeformats
Ich möchte UMAP (Engineering) stärker verstehen als t-SNE
[Für Anfänger] Wie man den Befehl say mit Python benutzt!
Ich möchte eine Variable in einen Python-String einbetten
Ich möchte Timeout einfach in Python implementieren
Ich möchte einen Python-Generator viele Male iterieren
Python, das ich Anfängern in der Programmierung empfehlen möchte
Ich möchte schnell UUID generieren (Gedenknotiz) ~ Python Edition ~
Ich möchte die Optimierung mit Python und CPlex behandeln
Ich möchte in Python schreiben! (2) Schreiben wir einen Test
Ich möchte eine Datei mit Python zufällig testen
Ich möchte mit Python-Datenklasse nach hinten erben
Ich möchte mit einem Roboter in Python arbeiten.
[Python] Ich möchte aus einer verschachtelten Liste einen Taple machen
Ich möchte in Python schreiben! (3) Verwenden Sie Mock
Ich möchte Lambda mit Python auf Mac AWS!
Ich möchte sagen, dass es eine Datenvorverarbeitung gibt ~
Ich möchte R-Datensatz mit Python verwenden
Ich möchte einen Quantencomputer mit Python betreiben
Ich möchte am Ende etwas mit Python machen
Ich möchte Strings in Kotlin wie Python manipulieren!
Ich möchte Wake On LAN vollautomatisch ausführen
Versuchen Sie, Python selbst zu verstehen
Ich möchte SUDOKU lösen
3 Gründe für die Programmierung Anfänger sollten mit Python beginnen
Ich verstehe Python auf Japanisch!
~ Tipps für Python-Anfänger mit Liebe von Pythonista ③ ~
Ich möchte Daten mit Python analysieren können (Teil 3)