Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Einführung in Python3.x

Detaillierte Einführung in Python3.x

零下一度
零下一度Original
2017-06-27 09:22:152349Durchsuche

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-9

pickle verwendet Binärdaten, wenn Daten gespeichert werden Die Methode wird zum Speichern und Lesen verwendet, also beim Schreiben einer Datei
firstSides = 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 deletion

Sie 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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn