Dieses Buch über maschinelles Lernen wurde in der Umgebung von Python2.x geschrieben. Viele Funktionen in Python3.x haben andere Namen oder Verwendungsmethoden als in 2.x. Daher muss der Inhalt des Originalbuchs kurz korrigiert werden Zeichnen Sie den Korrekturteil während des Lernvorgangs auf
1 Klammern müssen hinzugefügt werden, nachdem die Druckfunktion (die Druckfunktion beginnt in der Programmliste 2-4 zu erscheinen)
2 zur Eingabefunktion, in 3.
4.
in Programmliste 3-6
Suchen Sie in Python2.7 das erste Element, das dem Schlüssel entspricht: firstStr = myTree. keys() [0], dies meldet einen Fehler, wenn es in Python3.4 ausgeführt wird: „dict_keys“-Objekt unterstützt keine Indizierung. Dies liegt daran, dass Python3 dict.keys geändert und das dict_keys-Objekt zurückgegeben hat, das iterierbar, aber nicht indizierbar unterstützt . Wir können es ändern. Bei expliziter Konvertierung in eine Liste sollte diese Funktion in Python3 wie folgt implementiert werden:
5 Programmauflistung 3-9pickle verwendet Binärdaten, wenn Daten gespeichert werden Die Methode wird zum Speichern und Lesen verwendet, also beim Schreiben einer DateifirstSides = list(myTree.keys()) firstStr = firstSides[0]#找到输入的第一个元素
fw=open(filename,'w')---->fw=open(filename,'wb')
Öffnen Sie die Datei in binärer Form, um das Schreiben von Pickles zu erleichtern
Wenn Sie Daten aus der Datei lesen, müssen Sie sie auch in binärer Form lesen und die folgenden Änderungen vornehmen
fr= open(filename )---->fr=open(filename,'rb')
6.
wordList =textParse(open('ch04/email/ham/%d.txt' % i).read())Dieser Satz meldet beim Ausführen immer einen Codierungsfehler und das Ergebnis wird gelesen. Es sind verstümmelte Zeichen vorhanden in der Datei. Nach dem Löschen der verstümmelten Zeichen ist das Problem gelöst Der Fehlercode lautet wie folgt: UnicodeDecodeError: 'gbk' codec can't decode byte 0xae in position 199: illegal Multibyte-Sequenz trainingSet=range(50);del(trainingSet[randIndex])Da range keine Liste zurückgeben kann und del nicht unterstützt Beim Ausführen des Vorgangs wird während der Laufzeit Folgendes angezeigt: Fehler: TypeError: 'range' object does't support item deletionSie können den Code wie folgt ändern: trainingSet = list( Bereich(50)); Fortsetzung folgt……Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in Python3.x. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!