Ein Weg zum mittleren Python

Einführung

Programmiert ihr in Python? Für diejenigen, die etwas Verständnis für die grundlegende Grammatik von Python haben, aber noch einen Schritt weiter gehen möchten, sind hier einige Zwischentechniken und Schreibmethoden.

Wenn Sie diesen Artikel beherrschen, können Sie ab morgen ein fortgeschrittener Python-Benutzer werden? Also lasst uns anfangen.

Informationen zur Variablenzuweisung

In Python können mehrere Variablen in einer Zeile definiert werden.

Beim normalen Ersetzen:

x = 10
y = 12
z = 35

print(x, y, z)  # 10 12 35

Beim Ersetzen in einer Zeile:

x, y, z = 10, 12, 35

print(x, y, z)  # 10 12 35

Wie oben erwähnt, ist es möglich, Variablen in einer Zeile zu definieren. Das Definieren aller Variablen in einer Zeile verringert die Lesbarkeit, das Definieren von Variablen mit einer gewissen Relevanz erhöht jedoch die Lesbarkeit in einer Zeile.

Wenn Sie mehreren Variablen denselben Wert zuweisen, können Sie auch wie folgt schreiben. Dies ist eine Zuweisungsmethode, aber seien Sie vorsichtig mit veränderlichen (variablen) Objekten. Einzelheiten finden Sie in der ausführlichen Erklärung von Herrn Shiracamus im Kommentarbereich dieses Artikels.

x = y = z = 10

print(x, y, z)  # 10 10 10

Variablen tauschen

Beim Ersetzen des Inhalts von Variablen denke ich, dass es üblich ist, temporäre Variablen usw. zu verwenden, aber im Fall von Python ist es einfacher zu schreiben.

Beim normalen Austausch von Variablen:

x, y = 10, 23
tmp = x
x = y
y = tmp
print(x, y) # 23 10

Beim Vertauschen von Variablen in einer Zeile:

x, y = 10, 23
x, y = y, x
print(x, y) # 23 10

Ich bin überrascht, dass Variablen auf diese Weise ausgetauscht werden können. ..

Variablen erweitern

In Python ist es möglich, Arrays, Wörterbücher usw. mithilfe des Symbols * (Sternchen) zu erweitern.

test = [1, 2, 3]

print([test, 4, 5])  # [[1, 2, 3], 4, 5]
print([*test, 4, 5])  # [1, 2, 3, 4, 5]

Der obige Code verwendet ein Sternchen, um ein Array zu erweitern und zuzuweisen. Wenn Sie das Sternchen nicht verwenden, wird das Array in einem verschachtelten Zustand zugewiesen.

Verwenden Sie für Wörterbücher zwei Sternchen.

test = {'apple': 'red', 'remon': 'yellow'}

print({**test,'cherrie': 'pink'}) # {'apple': 'red', 'remon': 'yellow', 'cherrie': 'pink'}

Vergleich von wahr und falsch

Ich denke, dass es viele Fälle gibt, in denen die IF-Anweisung bestimmt, ob die Variable 0 oder Keine ist. Es ist jedoch kein pionischer Code, die Logik zu schreiben, die den booleschen Wert tatsächlich bestimmt.

Pythonic bedeutet "wie man einfachen und leicht lesbaren Code wie Python schreibt"

Wenn man normalerweise 0 beurteilt:

test = 0

if test == 0:
    print('NG')
else:
    print('OK')

So schreiben Sie Python-ähnliche Bedingungen:

test = 0

if not test:
    print('NG')
else:
    print('OK')

Im pionischen Code wird im Voraus entschieden, was als falsch beurteilt wird, daher schreiben wir die Beurteilungslogik für die entschiedene nicht explizit. Das Folgende wird als falsch beurteilt. Eingebautes Wahrheitswerturteil

Vergleich mit None ist Operator

Python-Vergleichsoperatoren sind "==" und "is". Beide können verwendet werden, um zu überprüfen, ob die zu vergleichenden Variablen gleich sind. Beachten Sie jedoch, dass Sie unerwartete Fehler verursachen können, wenn Sie die Bedeutung von beiden nicht verstehen.

F. Soll ich zum Vergleich mit None verwenden? A. Ja. Wenn Sie jedoch nicht wissen, was Sie tun, erhalten Sie dieselben Ergebnisse wie bei Verwendung von ==

Zunächst wird die Funktionsweise des is-Operators erläutert. Der Operator is prüft, ob die verglichenen Variablen dieselbe ID haben. Die ID einer Variablen ist das Referenzziel (Zeiger) der Variablen. Wenn beispielsweise der Referenzzielwert derselbe ist, das Referenzziel (Zeiger) jedoch unterschiedlich ist, stellt der Operator is fest, dass er falsch ist.

Wenn sich die Variablen auf dasselbe Ziel beziehen:

test = 'my name is taro' + '.'
test2 = test
print(id(test)) # 140643210401160
print(id(test2)) # 140643210401160

Im obigen Fall wird test2 eine Variable namens test zugewiesen, sodass test und test2 auf dieselbe Referenz verweisen. Beim Vergleich mit dem is-Operator werden test und test2 als gleich beurteilt. Lassen Sie uns auch die ID Keine überprüfen (ID kann je nach Umgebung variieren)

test = None
test2 = None
print(id(test)) # 9107296
print(id(test2)) # 9107296

Keiner bezieht sich auf dasselbe Objekt, unabhängig davon, wo es definiert ist. Wenn Sie also vergleichen möchten, ob es sich um None handelt oder nicht, können Sie mit dem Operator is überprüfen, ob das Vergleichsziel wirklich None ist. Im Fall des Operators == können Sie das Verhalten des Operators selbst mithilfe einer Funktion namens Operatorüberladung ändern, sodass möglicherweise nicht genau bestimmt werden kann, ob es sich um None handelt oder nicht. (Ohne Operatorüberladung führen keine Vergleiche mit den Operatoren is und == zum gleichen Ergebnis.)

F. Sollten wir nicht is für andere Vergleiche als None verwenden? A. Ja. Die Verwendung für Nicht-Keine-Vergleiche kann zu unerwarteten Fehlern führen.

Insbesondere ist es gefährlich, den Operator is häufig zu verwenden, da er sich beim Vergleichen von Zeichenfolgenvariablen möglicherweise unerwartet verhält. Betrachten Sie beispielsweise den folgenden Code.

test = 'my name is taro' + '.'
test2 = 'my name is taro' + '.'
print(id(test)) # 140196053288256
print(id(test2)) # 140196053288328

print(test) # my name is taro.
print(test2) # my name is taro.

if test is test2:
    print('same')
else:
    #Dies wird ausgegeben
    print('not same')
    
if test == test2:
    #Dies wird ausgegeben
    print('same')
else:
    print('not same')

Obwohl test und test2 dieselbe Zeichenfolge enthalten, wird auf sie unterschiedlich verwiesen. Im Vergleich zum Operator is werden die beiden Variablen als unterschiedlich und der Operator == als gleich beurteilt. Der Operator == hat den Nachteil, dass er langsamer als der Operator is ist, da er den Inhalt der Variablen überprüft und beurteilt. Die Verwendung des Operators is ist jedoch für andere Vergleiche als None verwirrend. Also ich empfehle es nicht. In Ausnahmefällen kann der Operator is jedoch verwendet werden, um Code sauber zu schreiben. (Siehe den Kommentar des Gerechten im Kommentarbereich)

Kurzschlussauswertung

Andere Sprachen haben eine Kurzschlussbewertungsmethode, aber Python hat auch eine. Durch eine gute Nutzung der Kurzschlussauswertung ist es möglich, die Logik von IF-Anweisungen intelligent zu schreiben.

Betrachten Sie beispielsweise den folgenden Code.

test = {'age': 20}

if 'age' in test:
    if test['age'] >= 20:
        print('Ich bin ein Erwachsener')

Zunächst prüft die erste IF-Anweisung, ob die Testvariable ein Attribut namens age hat. Dies dient dazu, einen Fehler zu vermeiden, wenn Sie auf ein Attribut zugreifen, das nicht vorhanden ist. Die zweite IF-Anweisung bestätigt, ob der Wert des Altersattributs 20 oder mehr beträgt.

Lassen Sie es uns mithilfe der Kurzschlussauswertung umschreiben.

test = {'age': 20}

if 'age' in test and test['age'] >= 20:
    print('Ich bin ein Erwachsener')

Sie könnten denken, dass Sie die IF-Anweisungen einfach mit dem Operator und verbunden haben. Wenn Sie jedoch links und rechts vom Operator und tauschen, ändert sich das von Ihnen gemeinte Verhalten. Das genaue Verhalten der Kurzschlussbewertung (und des Operators und / oder des Operators) besteht darin, dass die nächste Verarbeitung nicht ausgeführt wird, wenn die erste Bedingung wahr (oder Operator) oder falsch (und Operator) ist. Werden. In dem obigen Fall wird, wenn das Bewertungsergebnis von "Alter" im Test falsch ist, "Test [" Alter "]> = 20" nicht bewertet. Daher ist es möglich, die Bedingung zu erreichen, dass "test ['age']> = 20" nur ausgewertet wird, wenn das age-Attribut in der Testvariablen vorhanden ist.

Kombination von Vergleichsoperatoren

Ich denke, dass es viele Fälle gibt, in denen die numerischen Werte wie folgt verglichen werden.

x = 10
if x >= 0 and x <= 20:
    print('OK')
else:
    print('NG')

Im Fall von Python ist es jedoch möglich, wie folgt zu schreiben.

x = 10
if 0 <= x <= 20:
    print('OK')
else:
    print('NG')

Dreiecksoperator

Wenn Sie einer Variablen einen Wert zuweisen, gibt es meines Erachtens viele Situationen, in denen Sie den zuzuweisenden Wert abhängig von den Bedingungen ändern möchten. Zum Beispiel, wenn die Variable Keine ist oder wenn es sich um einen bestimmten Schlüssel handelt. Zu diesem Zeitpunkt können Sie intelligent schreiben, indem Sie Variablen mit dem ternären Operator zuweisen. Die Beschreibungsmethode des ternären Operators in Python lautet wie folgt.

(Variable) = (Wert, wenn die Bedingung erfüllt ist) if (Bedingter Ausdruck) else (Wert, wenn die Bedingung falsch ist) 

Code ohne den ternären Operator

test = 15

if test >= 0:
    message = 'Positive Zahl oder 0'
else:
    message = 'Ist eine negative Zahl'
print(message)

Code bei Verwendung des ternären Operators

test = 15

message = 'Positive Zahl oder 0' if test >= 0 else 'Ist eine negative Zahl'
print(message)

Wie oben erwähnt, wird der zugewiesene Teil zu einer Zeile, da der IF-Anweisungsteil in einer Zeile beschrieben werden kann, und die Lesbarkeit des Codes wird verbessert. Beachten Sie, dass Sie im ternären Operator den ternären Operator verschachteln müssen, wenn Sie mit mehreren Bedingungen verzweigen möchten (wenn Sie elif verwenden möchten). Das Verschachteln von ternären Operatoren verringert jedoch die Lesbarkeit des Codes erheblich und wird nicht empfohlen. Wenn die Bedingung kompliziert ist, kann die IF-Anweisung anstelle des ternären Operators verwendet werden.

Betten Sie den Wert einer Variablen in eine Zeichenfolge ein

Ich denke, es gibt vier Möglichkeiten, den Wert einer Variablen in eine Zeichenfolge in Python einzubetten.

name = 'taro'

#String+Mit dem Bediener verketten
print('ich' + name + 'ist')

#Verwenden Sie f string
print(f'ich{name}ist')

#Verwenden Sie die Formatierungsfunktion
print('ich{}ist'.format(name))

# %Wie benutzt man
print('ich%s' % name)

Die Methode "Zeichenfolgen mit dem Operator + verketten" wird nicht empfohlen, da der Code dadurch weniger lesbar und weniger bearbeitbar wird. (Der für die Verkettung verwendete Operator + ist in erster Linie bedeutungslos, und Sie müssen den Operator + schreiben, wenn Sie einen neuen hinzufügen.) Ich frage mich, ob es egal ist, ob Sie die f-Zeichenfolge oder die Formatierungsfunktion verwenden. Sie möchten jedoch nicht, dass beide Beschreibungen in Ihrem Projektcode verwendet werden. Ich denke, es sollte zu beiden vereinheitlicht werden.

FOR-Anweisung des Arrays

Ich denke, dass es viele Fälle gibt, in denen ein Array von einer FOR-Anweisung verarbeitet wird. Hier sind einige nützliche Techniken, die in diesem Fall verwendet werden können.

Verwenden Sie für jeden

Bei normaler Verwendung der FOR-Anweisung:

test = [1, 10, 15, 16]

for index in range(len(test)):
    print(test[index], end=' ') # 1 10 15 16 

Bei Verwendung von FOR EACH:

test = [1, 10, 15, 16]

for value in test:
    print(value, end=' ') # 1 10 15 16

Bei FOR EACH ist das Ziel, das in der FOR-Anweisung wiederholt werden soll, das Element des Arrays aus dem Index. Wenn Sie also die Elemente eines Arrays einzeln verarbeiten müssen, verbessert die Verwendung der FOR EACH-Notation die Lesbarkeit Ihres Codes.

Wir stoßen auch häufig auf Fälle, in denen wir Indizes in FOR EACH verwenden möchten. In diesem Fall können Sie sowohl das Element als auch den Index des Arrays abrufen, indem Sie die folgenden Schritte ausführen, damit Sie intelligent schreiben können.

test = [1, 10, 15, 16]

for index, value in enumerate(test):
    # index: 0 value: 1 , index: 1 value: 10 , index: 2 value: 15 , index: 3 value: 16 , 
    print('index:', index, 'value:', value, ',', end=' ')

Holen Sie sich Array-Elemente in umgekehrter Reihenfolge

Es wird selten angetroffen, aber es wird auch erwähnt, wann Sie die Elemente eines Arrays in umgekehrter Reihenfolge erhalten möchten.

Wenn Sie normalerweise die Elemente eines Arrays in umgekehrter Reihenfolge erhalten:

test = [1, 10, 15, 16]

for i in range(len(test)-1, -1, -1):
    print(test[i], end=' ') # 16 15 10 1 

Bei Verwendung der Umkehrfunktion:

test = [1, 10, 15, 16]

for value in reversed(test):
    print(value, end=' ') # 16 15 10 1 

Zusätzlich zur Verwendung der Umkehrfunktion können Sie auch Slices verwenden, um die Elemente des Arrays umzukehren. Weitere Informationen finden Sie im Kommentar von c-yan.

Um in Python intelligent programmieren zu können, ist es wichtig, die integrierten Funktionen zu verstehen. Es beschreibt die in diesem Artikel verwendete Bereichsfunktion, Len-Funktion, Umkehrfunktion usw. Integrierte Funktionen

FOR-Anweisung im Wörterbuch

Ich denke, dass das Wörterbuch oft von der FOR-Anweisung verarbeitet wird. Es gibt viele Möglichkeiten, eine FOR-Anweisung in ein Wörterbuch zu schreiben, aber im Grunde gibt es kein Problem, wenn Sie sich daran erinnern, wie die Funktion items verwendet wird.

Wenn Sie ein Wörterbuch mit einer FOR-Anweisung normalerweise verarbeiten:

test = {'apple': 'red', 'remon': 'yellow'}

for key in test:
    print('key:', key, 'value:', test[key], ',', end=' ') # key: apple value: red , key: remon value: yellow , 

Bei Verwendung der Items-Funktion:

test = {'apple': 'red', 'remon': 'yellow'}

for key,value in test.items():
    print('key:', key, 'value:', value, ',', end=' ')

Entfernen Sie doppelte Sequenzen

Ich begegne ihm nicht sehr oft, aber ich denke, ich werde ihm mehrmals begegnen. Sie können den Inhalt des Arrays überprüfen und eine eigene Funktion erstellen, um die Duplikate zu entfernen. Sie können die Duplikate jedoch bequemer entfernen.

test = [1, 2, 3, 3, 5, 1]
test2 = ['a', 'b', 'a', 'd', 'aa']

print(list(set(test))) # [1, 2, 3, 5]
print(list(set(test2))) # ['a', 'd', 'b', 'aa']

Der Punkt ist, dass Duplikate durch Konvertieren in den Set-Typ automatisch beseitigt werden können. Nach der Konvertierung in den Set-Typ wird es wieder in den Listentyp zurückgeführt.

Array sortieren

Sie implementieren die Array-Sortierung nicht selbst. Die Sortierung kann mit vorhandenen Funktionen erfolgen.

test = [10, 25, 4, 100, 69]
print(sorted(test)) # [4, 10, 25, 69, 100]
print(sorted(test, reverse=True)) # [100, 69, 25, 10, 4]

Sie können auch explizit angeben, was Sie als Schlüssel für die Sortierung verwenden möchten.

test = [[10, 25], [4, 100], [69, 71]]
print(sorted(test, key=lambda item: item[1])) # [[10, 25], [69, 71], [4, 100]]

Der obige Code sortiert nach dem zweiten Element im Array als Schlüssel.

Das Sortieren der sortierten Funktion ist nicht sehr schnell. Wenn Sie auf Geschwindigkeitsprobleme stoßen, empfehlen wir die Verwendung einer Bibliothek wie numpy.

Wörterbucharray sortieren

Möglicherweise möchten Sie das Wörterbucharray sortieren. In diesem Fall können Sie damit umgehen, indem Sie den Schlüssel wie unten gezeigt explizit angeben.

test = [{'name': 'taro', 'age': 18},{'name': 'jiro', 'age': 12}]

# [{'name': 'jiro', 'age': 12}, {'name': 'taro', 'age': 18}]
print(sorted(test, key=lambda item: item['age']))

Listeneinschlussnotation

Die Notation zur Aufnahme von Listen ist sehr praktisch und eine Beschreibungsmethode mit hoher Verarbeitungsgeschwindigkeit. Es handelt sich also um einen Schreibstil, den Sie unbedingt lernen möchten. Die Listeneinschlussnotation wird wie folgt beschrieben.

[(Wert, der dem Array hinzugefügt werden soll) for (Ein Element des Iteratorobjekts) in (Iteratorobjekt)]

Wenn Sie normalerweise eine gerade Liste erstellen:

test = []
for index in range(5):
    test.append(index * 2)
print(test) # [0, 2, 4, 6, 8]

Beim Erstellen einer Liste in Listeneinschlussnotation:

# [0, 2, 4, 6, 8]
print([index * 2 for index in range(5)])

Ich konnte in einer Zeile schreiben. Es ist auch möglich, die Bedingungen mit der IF-Anweisung (postfix IF) einzugrenzen.

#Erstellen Sie ein gerades Array, das kein Vielfaches von 10 enthält
# [2, 4, 6, 8, 12, 14, 16, 18, 22, 24, 26, 28, 32, 34, 36, 38]
print([index * 2 for index in range(20) if (index * 2) % 10])

In der Listeneinschlussnotation ist es auch möglich, die Bedingung mit IF und ELSE zu verzweigen. Darüber hinaus hat das Wörterbuch auch eine inklusive Notation, die diesmal jedoch weggelassen wird.

alle Funktionen und jede Funktion

Python hat eine all-Funktion, die bestimmt, ob alle Elemente True sind, und eine any-Funktion, die bestimmt, ob ein Element True ist. Wenn Sie alle Funktionen gut nutzen, können Sie intelligente Programme schreiben.

Angenommen, Sie schreiben ein Programm, das bestimmt, ob der Inhalt eines Arrays alle 0 oder höher ist.

Bei normaler Implementierung:

test = [-1, 5, 2]
judge = True
for value in test:
    if value < 0:
        judge = False
result = 'Alle Inhalte sind 0 oder mehr' if judge else 'Enthält negative Zahlen'
print(result)

Bei Verwendung der Funktion all:

test = [-1, 5, 2]
judge = all(map(lambda item: item >= 0, test))
result = 'Alle Inhalte sind 0 oder mehr' if judge else 'Enthält negative Zahlen'
print(result) #Enthält negative Zahlen

Ich konnte 3 Zeilen in 1 Zeile schreiben. Fahren wir nun mit der Erläuterung des Programms fort. Erstens ist die Kartenfunktion eine Funktion, mit der Sie auf jedes Element des Arrays eine Funktion anwenden können. Wenn map (Lambda-Element: Element> = 0, Test) angewendet wird, wird ein neues Kartenobjekt erstellt, das bestimmt, ob jedes Element 0 oder mehr ist. Dies bedeutet, dass ein Kartenobjekt "False, True, True" erstellt wird. Dann wird die Funktion all verwendet, um zu bestimmen, ob alle Elemente wahr sind. Beachten Sie, dass die Funktion all ein leeres Array als True zurückgibt. Sie müssen also einen separaten Zweig schreiben, um festzustellen, ob das Array leer ist. (Danke für deinen Kommentar, marmalade_boy)

Gibt True zurück, wenn alle Elemente von iterable true sind (oder wenn iterable leer ist).

Integrierte Funktionen alle

Kontextmanager und mit Block

Wir werden nicht auf die Details des Kontextmanagers eingehen, aber es ist eine gute Idee, etwas über den with-Block zu wissen.

Angenommen, Sie möchten eine Datei öffnen. Um die Situation zu behandeln, in der während der Verarbeitung der Datei eine Ausnahme auftritt und die Datei nicht geschlossen wird, schließen Sie sie in eine try-Klausel ein und schließen Sie die Datei endgültig.

fd = open("filename", "r")
try:
    file_content = file.read()
    raise Exception('test')
finally:
   fd.close()

Es ist jedoch mühsam, jedes Mal eine try-Klausel zu schreiben und die Datei zu schließen, daher verwende ich den with-Block.

with open("filename", "r") as fd:
  file_content = file.read()
  raise Exception('test')

Wenn Sie wie oben beschrieben schreiben, wird die Datei automatisch geschlossen, auch wenn im with-Block eine Ausnahme auftritt.

Schließlich

Vielen Dank für das Lesen des Langtextes. Python ist immer noch eine tiefe Sprache, daher sind die oben eingeführten nur einige. Ich hoffe jedoch, dass es Ihnen helfen wird. Dann (^^ ♪

Recommended Posts

Ein Weg zum mittleren Python
[Road to Intermediate] Grundlegendes zu Python-Eigenschaften
[Road to Intermediate Python] Verwenden Sie ternäre Operatoren
[Road to Intermediate Python] Verwenden Sie Lambda-Ausdrücke
[Road to Intermediate Python] Zusammenfassung der Artikelverknüpfungen
[Road to Intermediate Python] Rufen Sie eine Klasseninstanz wie eine Funktion mit __call__ auf
[Python] Der Weg zur Schlange (4) Numpy zwicken
[Python] Weg zur Schlange (6) Manipuliere Pandas
[Road to Intermediate] Python scheint alles Objekte zu sein
[Road to Intermediate Python] Definieren Sie die Funktion __getattr__ in der Klasse
[Road to Intermediate Python] Definieren Sie in Ihrer eigenen Klasse
[Python] Weg zur Schlange (5) Spiele mit Matplotlib
[Python] Weg zur Serpent (3) Python-Klasse
Weg zu Intermediate Linux: Network Edition
5 Möglichkeiten zum Erstellen eines Python-Chatbots
[Road to Intermediate Python] Installieren Sie Pakete in großen Mengen mit pip
[Road to Intermediate Python] Verwenden Sie die if-Anweisung in der Listeneinschlussnotation
[Road to Intermediate Python] Aktiviert Vergleichsoperationen mit Originalklassen
Auf Python 2.7.9 aktualisiert
[Python] Wie man eine Klasse iterierbar macht
[Python] So konvertieren Sie eine zweidimensionale Liste in eine eindimensionale Liste
[Road to Intermediate Python] Geben Sie die Ausführungsmethode dynamisch anhand des Variablennamens an
Python Bit Arithmetic Super Einführung
[Python] Straße zu Schlangen (1) Umgebungskonstruktion
Ich möchte eine Python-Umgebung erstellen
[Python] So invertieren Sie eine Zeichenfolge
Wie bekomme ich Stacktrace in Python?
Fügen Sie VSCode eine virtuelle Python-Umgebung hinzu
So führen Sie Maya Python-Skripte aus
Der Weg zum Kompilieren zu Python 3 mit Thrift
"Backport" zu Python 2
Senden Sie eine Nachricht von Slack an einen Python-Server
Bearbeiten Sie Excel in Python, um eine Pivot-Tabelle zu erstellen
Lesen einer CSV-Datei mit Python 2/3
Senden Sie eine Nachricht mit Python an LINE (LINE Notify)
Berechnen wir das statistische Problem mit Python
So löschen Sie einen Taple in einer Liste (Python)
Einbetten von Variablen in Python-Strings
Ich möchte mit Python ein Fenster erstellen
Portierte einen naiven Homebrew-Sprachcompiler nach Python
So erstellen Sie eine JSON-Datei in Python
Versuchen Sie, mit Python eine Lebenskurve zu zeichnen
Ich möchte ein Spiel mit Python machen
So generieren Sie ein Python-Objekt aus JSON
Versuchen Sie, in Python einen "Entschlüsselungs" -Code zu erstellen
Eine clevere Möglichkeit zur Zeitverarbeitung mit Python
So fügen Sie einen Suchpfad für Python-Module hinzu
Schritte zum Entwickeln einer Webanwendung in Python
Entscheide dich für einen Laborauftrag mit Python (Fiktion)
[Einführung in Python3, Tag 23] Kapitel 12 Werden Sie Paisonista (12.1 bis 12.6)
Python Hinweis: Wenn Sie einer Zeichenfolge einen Wert zuweisen
Warum muss Python einen Doppelpunkt schreiben?
Schritte zum Erstellen eines Twitter-Bots mit Python
So fügen Sie Python ein Modul hinzu, das Sie in Julialang eingefügt haben
So benachrichtigen Sie Discord-Kanäle in Python
Exportieren Sie PythonC Version OpenCV KeyPoint in eine Datei
Versuchen Sie, mit Python eine Diedergruppe zu bilden