10 Hauptunterschiede zwischen Python2 und Python3
1. Leistung
Py3.0 führt den Pystone-Benchmark 30 % langsamer aus als Py2.5. Guido glaubt, dass Py3.0 großen Optimierungsspielraum bietet und gute Optimierungsergebnisse bei String- und Integer-Operationen erzielen kann.
2. Kodierung
Py3.0-Quellcodedateien verwenden standardmäßig die UTF-8-Kodierung, wodurch der folgende Code zulässig ist:
>>> China = 'china'
>>> print(中国)
china
3. Grammatik
1) entfernt und alles durch !=
ersetzt2) Entfernen Sie „`“ und verwenden Sie repr() für alle
3) Fügen Sie as und with-Schlüsselwörter sowie True, False, None hinzu
4) Ganzzahldivision gibt Gleitkomma zurück Zahlen, um ganzzahlige Ergebnisse zu erhalten, verwenden Sie bitte //
5), um nichtlokale Anweisungen hinzuzufügen. Mit noclocal x können Sie periphere (nicht globale) Variablen direkt zuweisen
6) Entfernen Sie die print-Anweisung und fügen Sie die print()-Funktion hinzu, um dieselbe Funktion zu erreichen. Das Gleiche gilt für die exec-Anweisung, die in exec()
4 geändert wurde. Funktion
1) Die print-Anweisung wurde durch die Funktion print() ersetzt kann verwendet werden, um die alte print Special-Syntax zu ersetzen. Zum Beispiel:
Alt: print „Die Antwort ist“, 2*2
Neu: print(„Die Antwort ist“, 2*2)
Alt: print x , #Verwenden Sie Kommas am Ende, um Zeilenumbrüche zu verhindern
Neu: print(x, end=" ") # Verwenden Sie Leerzeichen, um Zeilen zu ersetzen
Alt: print # Neue Zeilen ausgeben
Neu: print() # Neue Zeile ausgeben
Alt: print >>sys.stderr, „fatal error“
Neu: print("fatal error", file=sys .stderr)
Alt: print (x, y) # Ausgabe repr((x, y))
Neu: print((x, y)) # Anders als print(x, y)!
2) Das Verhalten von sequentiellen Operatoren wie x
3) Eingabefunktion ändert sich jetzt:
Alt:
guess = int(raw_input('Geben Sie eine Ganzzahl ein: ')) #Methode zum Lesen von Tastatureingaben
Neu:
guess = int(input('Geben Sie eine Ganzzahl ein: '))
4) Entfernen Sie das Entpacken von Tupelparametern. Sie können die Funktion nicht wie folgt def(a, (b, c)): pass definieren
5) Neue oktale Wortvariable, die Funktion oct() wird entsprechend geändert. Die Methode für 2. >3.0 sieht so aus:
>>> 0666
SyntaxError: invalid token (, line 1)
>>> 0o666
438
>>> oct(438)
'0o666'
6) Binärliteral und bin()-Funktion
>>> bin hinzugefügt (438 )
'0b110110110'
>>> _438 = '0b110110110'
>>> _438
'0b110110110'
7 ) erweitertes iterierbares Entpacken. In Py3.0 sind a, b, *rest = seq und *rest, a = seq zulässig und erfordern nur zwei Punkte: rest ist ein Listenobjekt und seq ist iterierbar
8) New super() , können Sie keine Parameter mehr an super()
>>> class C(object):
def __init__(self, a):
print ('C.) übergeben ', a)
>>> class D(C):
def __init(self, a):
super().__init__(a) #Call super () ohne Parameter
>>> D(8)
C 8
9) Neue Metaklassensyntaxclass Foo(*bases, **kwds):pass10) unterstützt den Klassendekorator. Die Verwendung ist die gleiche wie beim Funktionsdekorator:<__main__.d>>>> def foo(cls_a):
def print_func(self):
print('Hello, world! ')
cls_a.print = print_func
return cls_a
>>> @foo
class C(object):
pass
>>> C().print()
Hallo,
Klassendekorateur kann verwendet werden, um den Trick zu spielen, die Zibetkatze in einen Prinzen zu verwandeln. Weitere Informationen finden Sie in PEP 3129
5. Strings und Byte-Strings
1) Jetzt gibt es nur noch einen String-Typ, str, aber dieser ist fast derselbe wie 2. x-Version von Unicode.
2) Informationen zu Byte-Strings finden Sie im 2. Punkt von „Datentyp“
6 Datentyp
1) Py3.0 hat den langen Typ entfernt. Jetzt gibt es nur einen Ganzzahltyp – int, aber er verhält sich wie long
in Version 2. Die Messmethode ist wie folgt:
>>> b = b'china'
>>> type(b)
3) str-Objekte und Bytes-Objekte können mithilfe von .encode() (str -> bytes) ineinander umgewandelt werden. oder .decode() (Bytes -> str) Methode >>> s = b.decode()>>> s'china'
>>> b1 = s.encode()
>>> b1
b' china'
4) 1. Die .keys(), . Die Methoden items und .values() von dict geben Iteratoren zurück, während die vorherigen Funktionen iterkeys() und andere aufgegeben wurden. Ebenfalls entfernt wurde dict.has_key(), ersetzen Sie es durch in
7. 7. Objektorientiert
1) 1) Einführung abstrakter Basisklassen (ABCs).
2) Containerklassen und Iteratorklassen sind ABCs, daher gibt es im Cellections-Modul viel mehr Typen als in Py2.5
>>> Importsammlungen
>> > print('n'.join(dir(collections)))
Callable
Container
Hashable
ItemsView
Iterable
Iterator
KeysView
Mapping
MappingView
MutableMapping
MutableSequence
MutableSet
NamedTuple
Sequence
Set
Sized
ValuesView
__all__
__builtins__
__doc__
__file__
__name__
_abcoll
_itemgetter
_sys
defaultdict
deque
Darüber hinaus haben numerische Typen auch die ABC-Größe. Zu diesen beiden Punkten siehe PEP 3119 und PEP 3141.
3) Die next()-Methode des Iterators wird in __next__() umbenannt und die integrierte Funktion next() wird hinzugefügt, um die __next__()-Methode des Iterators aufzurufen
4) @abstractmethod ist Hinzugefügt und @abstractproperty zwei Dekoratoren, ist es bequemer, abstrakte Methoden (Eigenschaften) zu schreiben
8 Ausnahmen
1) Ausnahmen werden also von BaseException und StardardError geerbt
2 wird gelöscht) Das Sequenzverhalten der Ausnahmeklasse und des .message-Attributs wurde entfernt
3) Verwenden Sie raise Exception(args) anstelle von raise Exception, args-Syntax
4) Ändern Sie die Syntax von Ausnahmen abfangen und als Schlüsselwörter zur Identifizierung von Ausnahmeinstanzen einführen, in Py2.5:
>>> try:
... raise NotImplementedError('Error')
... außer NotImplementedError , Fehler:
... print error.message
...
Fehler
in Py3.0:
>>> versuchen Sie:
erhöhen Sie NotImplementedError('Error')
außer NotImplementedError als Fehler: #Notieren Sie dies als
print(str(error) )
Fehler
5) Ausnahmekette, da __context__ in Version 3.0a1 nicht implementiert wurde, werden wir nicht über diesen Aspekt sprechen
9 Moduländerungen
• Das cPickle-Modul wurde entfernt und kann durch das Pickle-Modul ersetzt werden. Irgendwann werden wir ein transparentes und effizientes Modul haben.
• Imageop-Modul entfernt
• Audiodev, Bastion, bsddb185, Ausnahmen, Linuxaudiodev, MD5, MimeWriter, Mimify, Popen2, Rexec, Sets, Sha, Stringold, Strop, Sunaudiodev, Timing und entfernt xmllib-Module
• Das bsddb-Modul wurde entfernt (separat veröffentlicht, verfügbar unter http://www.jcea.es/programacion/pybsddb.htm)
• Das neue Modul wurde entfernt
• Die Funktionen os.tmpnam() und os.tmpfile() wurden in das tmpfile-Modul verschoben
• Das tokenize-Modul funktioniert jetzt mit Bytes. Der Haupteinstiegspunkt ist nicht mehr generic_tokens, sondern tokenize.tokenize()
10) xrange() wird in range() umbenannt. Um eine Liste zu erhalten, muss explizit aufgerufen werden:
>>> list(range(10))
[0, 1, 2, 3, 4, 5, 6, 7, 8 , 9]
2) Das Bytes-Objekt kann nicht hashen und unterstützt die Methoden b.lower(), b.strip() und b.split() nicht, aber für die beiden letztgenannten können Sie verwenden b.strip(b' ntrf' ) und b.split(b'') um den gleichen Zweck zu erreichen
3) zip(), map() und filter() geben alle Iteratoren zurück. Die Funktionen apply(), callable(), coerce(), execfile(), Reduce() und reload() wurden alle entfernt
4) string.letters und zugehörige .lowercase und .uppercase wurden entfernt , verwenden Sie stattdessen bitte string.ascii_letters
5) Wenn x
6) Mitglieder der __getslice__-Serie werden aufgegeben. a[i:j] wird in a.__getitem__(slice(I, j)) konvertiert oder __setitem__ und __delitem__ werden je nach Kontext aufgerufen
7) Die Dateiklasse ist in Py2.5 veraltet:
>>> Datei
In Py3.0:
>>> Datei
Traceback (letzter Aufruf last):
Datei "", Zeile 1, in
Datei
NameError: Name 'Datei' ist nicht definiert

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



PHP und Python haben ihre eigenen Vor- und Nachteile, und die Wahl hängt von den Projektbedürfnissen und persönlichen Vorlieben ab. 1.PHP eignet sich für eine schnelle Entwicklung und Wartung großer Webanwendungen. 2. Python dominiert das Gebiet der Datenwissenschaft und des maschinellen Lernens.

Python und JavaScript haben ihre eigenen Vor- und Nachteile in Bezug auf Gemeinschaft, Bibliotheken und Ressourcen. 1) Die Python-Community ist freundlich und für Anfänger geeignet, aber die Front-End-Entwicklungsressourcen sind nicht so reich wie JavaScript. 2) Python ist leistungsstark in Bibliotheken für Datenwissenschaft und maschinelles Lernen, während JavaScript in Bibliotheken und Front-End-Entwicklungsbibliotheken und Frameworks besser ist. 3) Beide haben reichhaltige Lernressourcen, aber Python eignet sich zum Beginn der offiziellen Dokumente, während JavaScript mit Mdnwebdocs besser ist. Die Wahl sollte auf Projektbedürfnissen und persönlichen Interessen beruhen.

Docker verwendet Linux -Kernel -Funktionen, um eine effiziente und isolierte Anwendungsumgebung zu bieten. Sein Arbeitsprinzip lautet wie folgt: 1. Der Spiegel wird als schreibgeschützte Vorlage verwendet, die alles enthält, was Sie für die Ausführung der Anwendung benötigen. 2. Das Union File System (UnionFS) stapelt mehrere Dateisysteme, speichert nur die Unterschiede, speichert Platz und beschleunigt. 3. Der Daemon verwaltet die Spiegel und Container, und der Kunde verwendet sie für die Interaktion. 4. Namespaces und CGroups implementieren Container -Isolation und Ressourcenbeschränkungen; 5. Mehrere Netzwerkmodi unterstützen die Containerverbindung. Nur wenn Sie diese Kernkonzepte verstehen, können Sie Docker besser nutzen.

Python zeichnet sich in Automatisierung, Skript und Aufgabenverwaltung aus. 1) Automatisierung: Die Sicherungssicherung wird durch Standardbibliotheken wie OS und Shutil realisiert. 2) Skriptschreiben: Verwenden Sie die PSUTIL -Bibliothek, um die Systemressourcen zu überwachen. 3) Aufgabenverwaltung: Verwenden Sie die Zeitplanbibliothek, um Aufgaben zu planen. Die Benutzerfreundlichkeit von Python und die Unterstützung der reichhaltigen Bibliothek machen es zum bevorzugten Werkzeug in diesen Bereichen.

Im VS -Code können Sie das Programm im Terminal in den folgenden Schritten ausführen: Erstellen Sie den Code und öffnen Sie das integrierte Terminal, um sicherzustellen, dass das Codeverzeichnis mit dem Terminal Working -Verzeichnis übereinstimmt. Wählen Sie den Befehl aus, den Befehl ausführen, gemäß der Programmiersprache (z. B. Pythons Python your_file_name.py), um zu überprüfen, ob er erfolgreich ausgeführt wird, und Fehler auflösen. Verwenden Sie den Debugger, um die Debugging -Effizienz zu verbessern.

VS Code ist der vollständige Name Visual Studio Code, der eine kostenlose und open-Source-plattformübergreifende Code-Editor und Entwicklungsumgebung von Microsoft ist. Es unterstützt eine breite Palette von Programmiersprachen und bietet Syntax -Hervorhebung, automatische Codebettel, Code -Snippets und intelligente Eingabeaufforderungen zur Verbesserung der Entwicklungseffizienz. Durch ein reiches Erweiterungs -Ökosystem können Benutzer bestimmte Bedürfnisse und Sprachen wie Debugger, Code -Formatierungs -Tools und Git -Integrationen erweitern. VS -Code enthält auch einen intuitiven Debugger, mit dem Fehler in Ihrem Code schnell gefunden und behoben werden können.

VS -Code kann zum Schreiben von Python verwendet werden und bietet viele Funktionen, die es zu einem idealen Werkzeug für die Entwicklung von Python -Anwendungen machen. Sie ermöglichen es Benutzern: Installation von Python -Erweiterungen, um Funktionen wie Code -Abschluss, Syntax -Hervorhebung und Debugging zu erhalten. Verwenden Sie den Debugger, um Code Schritt für Schritt zu verfolgen, Fehler zu finden und zu beheben. Integrieren Sie Git für die Versionskontrolle. Verwenden Sie Tools für die Codeformatierung, um die Codekonsistenz aufrechtzuerhalten. Verwenden Sie das Lining -Tool, um potenzielle Probleme im Voraus zu erkennen.

VS -Code -Erweiterungen stellen böswillige Risiken dar, wie das Verstecken von böswilligem Code, das Ausbeutetieren von Schwachstellen und das Masturbieren als legitime Erweiterungen. Zu den Methoden zur Identifizierung böswilliger Erweiterungen gehören: Überprüfung von Verlegern, Lesen von Kommentaren, Überprüfung von Code und Installation mit Vorsicht. Zu den Sicherheitsmaßnahmen gehören auch: Sicherheitsbewusstsein, gute Gewohnheiten, regelmäßige Updates und Antivirensoftware.
