** Erstellen und Verstehen von Entscheidungsbäumen in Python von Grund auf ** 1. Übersicht --2 Grundlagen des Python-Programms
Ich werde das Python-Programm zum Erstellen eines Entscheidungsbaums erklären.
#Kommentar
a = 1 #Kommentar
'''Das Folgende wird ein Kommentar sein
b = c
c = d
'''
#Variablen werden dynamisch typisiert
# =Weist (kopiert) Werte von rechts nach links zu.
i = 1 #Ganzzahliger Typ(int)
f = 2.1 #Gleitkomma-Typ(float)
s = "a" #Zeichentyp(string)
b = True #Boolescher Typ(bool)
l = [0,1,2] #Array, Listentyp
t = (0,1,2) #Taple-Typ
d = {"a":0, "b":1} #Wörterbuch, assoziativer Array-Typ
print(i,f,s,b,l,t,d)
# 1 2.1 a True [0, 1, 2](0, 1, 2) {'a': 0, 'b': 1}
#Wenn Sie den Typ herausfinden möchten, verwenden Sie type.
print(type(i)) #Ausgabe<class 'int'>
#Die Variable enthält nicht den tatsächlichen Wert, sondern speichert den tatsächlichen Wert
#Es ist eine Variable, die als Referenztyp bezeichnet wird und auf einen Ort verweist.
#Sie können die Kennung des tatsächlichen Werts anhand der ID abrufen.
print(id(l)) # 00000000000000 (Es kommt auf die Ausführung an)
l2 = l #Beispielsweise verweist eine Kopie eines Arrays nur auf zwei, und das tatsächliche Array ist nur eins.
print(id(l2)) # 00000000000000 (Id oben(l)Wird der gleiche Wert sein wie)
#Da es nur ein tatsächliches Array gibt, scheint das Hinzufügen eines Elements mit einem Verweis auf l2 auch dem Array l hinzugefügt worden zu sein.
l2.append(1)
a = 1 #a enthält 1
b = a #b enthält auch 1
a = 2 #a wird um 2 überschrieben, b bleibt unverändert
a += 1 #Der Wert von a erhöht sich um eins(Zu diesem Zeitpunkt ist a 3)
a -= 1 #Der Wert von a wird um eins dekrementiert(Zu diesem Zeitpunkt ist a 2)
a *= 2 #Der Wert eines verdoppelt sich(Zu diesem Zeitpunkt ist a 4)
a /= 3 #Der Wert von a wird zu einem Drittel(Zu diesem Zeitpunkt ist a 1.3333333333333333)
a = 1+2-3*4/5 #In der Reihenfolge Multiplikation, Division, Addition, Subtraktion berechnet, ist a 0.6
# (Der Gleitkommafehler ist jedoch tatsächlich 0.6000000000000001)
a = 0
#Geben Sie die Ausführungsbedingungen der eingerückten Programmgruppe unten rechts an.
#Es gibt Bedingungen, Wiederholungen, Funktionalisierungen usw., die unten gezeigt werden.
if a == 1:
#Die Linie, die durch den Einzug nach if nach rechts verschoben wird, ist die Linie, die auf der linken Seite der Linie von dieser Linie um den gleichen Betrag nach rechts verschoben ist
#Bilden Sie eine Programmgruppe.
print(1)
print(2)
pass #Zeigt das bisher explizit eingerückte Ende der Gruppe an.
#Die Zeilen darüber sind eine Gruppe von Programmen, die ausgeführt werden, wenn die if-Bedingungen erfüllt sind.
print(3) #Ausgabe unabhängig vom Wert von a, vorbehaltlich der obigen Bestimmungen, wenn
#Ausgabe 3
#Ausführen oder nicht, nur einmal, wenn ausgeführt
wenn Bedingung:
# program group
#Wiederholen Sie die Ausführung nur für die Elemente des Arrays.
#Die Elemente des Arrays werden der Variablen v in der Mitte der Wiederholung in der Reihenfolge von vorne zugewiesen.
für v im Array:
# program group
#Führen Sie die Programmgruppe weiter aus, solange die Bedingungen erfüllt sind
während Zustand:
# program group
#Entscheiden Sie, wann Sie es später ausführen möchten
#(Erstelle eine Gruppe und gib ihr vorerst einen Namen)
def Programmgruppenname():
# program group
#Das Ergebnis der Ausführung dieser Programmgruppe wurde mit return ausgeführt.
#Es kann an den Ort zurückgegeben werden.
return
#Dies ist ein Fehler
#Einrückungsänderungen werden gedruckt(2)Wird eine andere Programmgruppe.
#Programmgruppe 2 hat jedoch keine Erklärung
if a == 1:
#Programmgruppe 1 Die Steuerung dieser Programmgruppe erfolgt, wenn a==1:
print(1)
#Programmgruppe 2 Ein Fehler tritt auf, weil für diese Programmgruppe kein Steuerteil vorhanden ist.
print(2)
a = 1
b = 2
c = 2
#a und b sind gleich und a und c sind unterschiedlich
if a==b and a!=c:
print("Nur c ist anders")
#a ist größer oder gleich b(a und b enthalten dasselbe)Oder a überschreitet c(a und c enthalten nicht dasselbe)
elif a>=b or a>c:
print("a ist größer oder gleich b oder größer als c")
# if,Andere als elif Bedingungen
else:
print("anders als das")
#Andere Ausgabe als diese
a = 1
b = 2
#0 wird v zugewiesen, wenn a und b gleich sind, und 1 wird anderweitig zugewiesen.
v = 0 if a==b else 1
print(v)
#Ausgabe 1
for v in [0,1,2,3]: #Array[0,1,2,3]Die folgende Verarbeitung wird für die Anzahl der Elemente von wiederholt.
#Bei der Verarbeitung wird zu diesem Zeitpunkt v in der Reihenfolge von vorne auf die Elemente des Arrays gesetzt.
print(v)
pass #Beenden Sie den Einzug hier explizit.
#Ausgabe 0 1 2 3
#Durch Verwendung von enumerate können der Index und der Wert des Arrays im iterativen Prozess ermittelt werden.
for i,v in enumerate([5,3,7,8]):
#i ist der Index und v ist der Elementwert.
print("(",i,v,")")
#Ausgabe( 0 5 ) ( 1 3 ) ( 2 7 ) ( 3 8 )
#Mit zip können zwei Arrays zu einem und iterativ kombiniert werden.
for v0,v1 in zip([1,2,3,4],[5,6,7,8]):
#v0 enthält die Elemente des Arrays des ersten Arguments von zip, und v1 enthält die Elemente des zweiten Arguments.
print("(",v0,v1,")")
#Ausgabe( 1 5 ) ( 2 6 ) ( 3 7 ) ( 4 8 )
a = 3
#a ist 0 oder mehr
while a>=0:
print(a)
#Verringern Sie den Wert von a um eins
a -= 1
#Ausgang 3 2 1 0
#Funktionsdefinition Der Name ist Funktion_name,Die Argumente sind param1 und param2, und param2 ist das Standardargument.
#Das Argument, das verwendet wird, wenn es beim Aufrufen der Funktion nicht festgelegt wird, wird angegeben.
def function_name(param1,param2=1):
print("p1:",param1,"p2",param2)
#Diese Funktion ruft param1 auf+Gibt das Ergebnis von param2 zurück.
return param1 + param2
#Aufruf einer Funktion (hier zum ersten Mal Funktion_Das Programm namens name wird ausgeführt
#param1 hat 5 Argumente, param2 ist nicht gesetzt (Standardargumente verwenden)
v = function_name(5)
#Ausgabe(function_Ausgabe durch print-Anweisung in der Namensfunktion) p1: 5 p2 1
print("Rückgabewert",v)
#Rückgabewert ausgeben 6
#Funktionsname= lambda (Streit) : (Rückgabewert)Schreiben Sie die Funktion schriftlich.
f = lambda x: x*x
#Beim Aufruf entspricht dies der Funktionsdefinition von def
v = f(2)
print(v) #Anzeige als 4
si = "1" #Zeichentyp
sf = "2.3" #Zeichentyp
i = 4 #Ganzzahliger Typ
#Ganzzahl ⇒ Zeichenkonvertierung und Hinzufügen von Zeichenfolgen sind Zeichenkombinationen.
print(str(i)+si)
# 41
#Zeichen ⇒ Ganzzahlkonvertierung, Addition nach Ganzzahlkonvertierung ist die Addition von Ganzzahlen wie sie ist
print(i+int(si))
# 5
#Zeichen ⇒ Gleitkommakonvertierung, Ganzzahl+Das Ergebnis der Gleitkommaberechnung wird automatisch in Gleitkomma geändert
print(i+float(sf))
# 6.3
#Sequenzgenerierung
a = [1,1,2,3,2] # a=[[1,1,2,3,2]
b = [n for n in range(8)] # b=[0, 1, 2, 3, 4, 5, 6, 7]
#Referenz
#Negativer Wert ist-Es ist ein Index, der von hinten mit 1 als letztem Element zählt.
v = a[0] # v=1
v = a[-1] # v=2
#hinzufügen
a += [4] # a=[1, 1, 2, 3, 2, 4]
a.append(5) # a=[1, 1, 2, 3, 2, 4, 5]
#Mitnahme(A vor der Ausführung=[1, 1, 2, 3, 2, 4, 5])
v = a.pop(0) # v=1, a=[1, 2, 3, 2, 4, 5]
#Scheibe(A vor der Ausführung=[1, 2, 3, 2, 4, 5])
# a[Erster Index:Index eins vor dem Ende]
# a[:]Wenn der Index wie in weggelassen wird, ist der erste 0 und der letzte die Anzahl der Elemente.
c = a[1:3] # c=[2, 3]
#Maximum Minimum(A vor der Ausführung=[1, 2, 3, 2, 4, 5])
mx,mi = max(a),min(a) # mx=5, mi=1
#durchschnittlich(mean),Median(median)Am häufigsten(mode),Standardabweichung(stdev), Verteilt(variance)
# (A vor der Ausführung=[1, 2, 3, 2, 4, 5])
from statistics import mean,median,mode,stdev,variance
v = mean(a) # v=2.8333333333333335
v = median(a) # v=2.5
v = mode(a) # v=2
v = stdev(a) # v=1.4719601443879744
v = variance(a) #v=2.1666666666666665
#Doppelte Entfernung(A vor der Ausführung=[1, 2, 3, 2, 4, 5])
c = set(a) # c={1, 2, 3, 4, 5}
#Sortieren (neues sortiertes Array erstellen)(A vor der Ausführung=[1, 2, 3, 2, 4, 5])
c = sorted(a) # c=[1, 2, 2, 3, 4, 5](a bleibt unverändert)
#Sortieren (ersetzen Sie den Inhalt des Arrays durch den sortierten)(A vor der Ausführung=[1, 2, 3, 2, 4, 5])
a.sort() # a=[1, 2, 2, 3, 4, 5]
#Die Generierung, der Schlüssel ist das Wetter, die Temperatur und das Array wird für den Wert angegeben.
d = {
"Landessprache" : [81, 60, 97, 96],
"Mathematik" : [80, 78, 75, 96],
"Englisch" : [76, 85, 65, 88],
}
print(d)
#Ausgabe{'Landessprache': [81, 60, 97, 96], 'Mathematik': [80, 78, 75, 96], 'Englisch': [76, 85, 65, 88]}
#Erhalten Sie Wert durch Angabe des Schlüssels
a = d["Mathematik"] # a=[80, 78, 75, 96]
#Stellen Sie Werte durch Angabe eines Schlüssels ein (überschreiben)
d["Englisch"] = [77, 61, 91, 87] # d["Englisch"]=[77, 61, 91, 87]
#Datenschleife
for k,v in d.items():
print(k,v)
#Landessprache ausgeben[81, 60, 97, 96]Mathematik[80, 78, 75, 96]Englisch[77, 61, 91, 87]
#Maximum, Minimum (bei Punktzahl in der Landessprache)
jmx,jmi = max(d["Landessprache"]),min(d["Landessprache"])
#print(jmx,jmi)
#Erwerb des Subjektnamens mit dem höchsten Durchschnittswert
from statistics import mean
#Für max des Wörterbuchtyp-Arrays können Sie im Schlüsselargument eine Funktion angeben, mit der das Maximum ermittelt werden soll.
#In diesem Fall ist das Argument k(Schlüsselwert des Wörterbuchtyps)Die Lambda-Formel wird verwendet, um den Durchschnitt der Werte zu ermitteln.
kmx = max(d,key=lambda k:mean(d[k])) # kmx="Landessprache"