Heim  >  Artikel  >  Backend-Entwicklung  >  Was ist der Unterschied zwischen Python2 und Python3?

Was ist der Unterschied zwischen Python2 und Python3?

青灯夜游
青灯夜游Original
2018-11-16 17:33:4353880Durchsuche

Die Unterschiede zwischen Python2 und Python3 sind: 1. Unterschiede im Ausgabedruck; 2. Unterschiede in der Ganzzahldivision und in den Rückgabewerten; 4. Fehler in der Verarbeitung; 6. xrange ist anders und so weiter.

Was ist der Unterschied zwischen Python2 und Python3?

Die Betriebsumgebung dieses Artikels: Windows 7-System, Dell G3-Computer, Python-Version 3.6.4.

In diesem Artikel werden Ihnen die Unterschiede zwischen Python2 und Python3 vorgestellt, damit jeder die Python-Version verstehen kann. Es hat einen gewissen Referenzwert. Freunde in Not können sich darauf beziehen. Ich hoffe, es wird Ihnen hilfreich sein.

Wenn wir mit Python nicht vertraut sind, sind wir möglicherweise durch die verschiedenen verfügbaren Python-Versionen verwirrt. Auf die Frage, welche Python-Version Sie verwenden sollten, gibt es derzeit keine eindeutige Antwort. Die Entscheidung hängt davon ab, was Sie erreichen möchten.

Obwohl Python 3 die neueste Generation der Sprache ist und die Zukunft der Sprache darstellt, verwenden immer noch viele Programmierer Python 2.7, die letzte aktualisierte Version von Python 2, die 2010 veröffentlicht wurde. Dies liegt daran, dass einige ältere Bibliotheken und Pakete nur mit Python 2 funktionieren.

Warum gibt es verschiedene Versionen von Python?

Programmiersprachen entwickeln sich weiter, da Entwickler die Fähigkeiten der Sprache erweitern und Macken beseitigen, die Entwicklern Probleme bereiten. Python 3 wurde 2008 mit dem Ziel eingeführt, die Verwendung von Python zu vereinfachen und die Art und Weise, wie es mit Zeichenfolgen umgeht, zu ändern, um den heutigen Anforderungen der Sprache gerecht zu werden. Programmierern, die neu in der Programmierung in Python 2 sind, fällt es manchmal schwer, sich an die neuen Änderungen anzupassen, aber Neulinge finden oft, dass neue Versionen der Sprache sinnvoller sind.

Python 3.0 unterscheidet sich grundlegend von früheren Python-Versionen, da es die erste Python-Version ist, die mit älteren Versionen nicht kompatibel ist. Programmierer müssen sich in der Regel nicht um kleine Updates (z. B. von 2.6 auf 2.7) kümmern, da sie normalerweise nur das Innenleben von Python ändern und von den Programmierern keine Änderung ihrer Syntax verlangen. Die Änderungen zwischen Python 2.7 (der endgültigen Version von Python 2) und Python 3.0 sind viel bedeutender, sodass Code, der in Python 2.7 funktioniert, wahrscheinlich anders geschrieben werden muss, um in Python 3.0 zu funktionieren.

Was sind die Hauptunterschiede zwischen Python 2 und Python 3?

1. Ausgabe--print

In Python 2 wird „print“ als Anweisung und nicht als Funktion behandelt. Sie müssen den auszugebenden Text nicht in Klammern setzen, dies ist jedoch möglich. Dies kann verwirrend sein, da die meisten anderen Operationen in Python Funktionen verwenden, bei denen Argumente in Klammern gesetzt werden müssen. Es kann auch zu unerwarteten Ergebnissen führen, wenn Sie eine durch Kommas getrennte Liste der auszugebenden Elemente in Klammern setzen.

In Python 3 wird „print“ explizit als Funktion behandelt, was bedeutet, dass Sie die Elemente, die Sie ausgeben möchten, standardmäßig in Klammern an die Funktion übergeben müssen, andernfalls erhalten Sie einen Syntaxfehler. Einige Python-2-Programmierer empfinden diese Änderung als störend, sie kann jedoch dazu beitragen, das Auftreten von Fehlern zu verhindern.

Beispiel:

print 'Hello, Geeks'   # Python 3.x 不支持
print('Hope You like these facts')

Ausgabe:

Ausgabe von Python 2.x:

Was ist der Unterschied zwischen Python2 und Python3?

Python 3.x-Ausgabe :

Was ist der Unterschied zwischen Python2 und Python3?

Da print „Hello, Geeks“ in Python 3.x nicht unterstützt wird, ist ein Fehler aufgetreten:

Was ist der Unterschied zwischen Python2 und Python3?

2. Ganzzahldivision:

Python 2 behandelt Zahlen ohne Nachkommastellen als Ganzzahlen, was bei der Division zu unerwarteten Ergebnissen führen kann. Wenn Sie beispielsweise den Ausdruck „3/2“ in Python 2-Code eingeben, wird er als 1 und nicht wie erwartet als 1,5 ausgewertet.

Das liegt daran, dass Python 2 davon ausgeht, dass das Ergebnis der Division eine Ganzzahl sein soll, und die Berechnung daher auf die nächste Ganzzahl abrundet. Um das Ergebnis 1.5 zu erhalten, müssen Sie 3.0/2.0 schreiben, um Python mitzuteilen, dass es eine Gleitkommazahl zurückgeben soll, d. h. die Zahlen nach dem Komma in das Ergebnis einbeziehen.

Python 3 wertet 3/2 standardmäßig als 1,5 aus, was für neue Programmierer intuitiver ist.

3. Variablen der Listenverständnisschleife:

In früheren Python 2.x-Versionen erhielten die im Listenverständnis iterierten Variablen denselben Namen wie die globalen Variablen Kann dazu führen, dass der Wert der globalen Variablen geändert wird, was normalerweise nicht Ihren Wünschen entspricht.

Dieser lästige Fehler wurde in Python 3 behoben. Daher können Sie einen Variablennamen verwenden, der bereits für die Steuervariable im Listenverständnis verwendet wird, ohne befürchten zu müssen, dass er verloren geht und den Wert der Variablen im Rest des Codes beeinträchtigt.

4. Unicode-Zeichenfolge:

默认情况下,Python 3是将字符串存储为Unicode,而如果Python 2要将字符串存储为Unicode,则要求使用“u”标记字符串。Unicode字符串比ASCII字符串更通用,它们都是Python 2的默认字符串,因为它们可以存储来自外语的字母以及表情符号和标准的罗马字母和数字。如果要确保Python 3代码与Python 2兼容,你仍然可以使用“u”来标记Unicode字符串。

5、错误处理:

Python 2和Python 3两个版本的错误处理有一个小的变化。

在python 3.x中,'as'关键字是必需的。例:

try: 
    trying_to_check_error 
except NameError, err: 
    print err, 'Error Caused'   # 不能在Python 3中工作

运行:

Python 2.x中输出:

Was ist der Unterschied zwischen Python2 und Python3?

Python 3.x 中运行,报错:

Was ist der Unterschied zwischen Python2 und Python3?

try: 
     trying_to_check_error 
except NameError as err:    # 'as' 是 Python 3.x 必需的存在的关键字
     print (err, 'Error Caused')

运行:

Python 2.x中输出:

Was ist der Unterschied zwischen Python2 und Python3?

Python 3中输出:

Was ist der Unterschied zwischen Python2 und Python3?

6、xrange:

Python 3.x中不存在Python 2.x的xrange()。在Python 2.x中,range返回一个列表,即range(3)返回[0,1,2],而xrange返回一个xrange对象,即xrange(3)返回iterator对象,它与Java迭代器类似,并在需要时生成数字。
如果我们需要多次迭代相同的序列,我们更喜欢range(),因为range提供了一个静态列表。xrange()每次重建序列。xrange()不支持切片和其他列表方法。xrange()的优点是,当任务迭代大范围时,它可以节省内存。

在Python 3.x中,范围函数现在执行xrange在Python 2.x中的功能,因此为了保持代码的可移植性,我们可能希望坚持使用范围。所以Python 3.x的范围函数是来自Python 2.x的xrange。

例:

for x in xrange(1, 5): 
    print(x), 
  
for x in range(1, 5): 
    print(x),

运行:

Python 2.x中输出:

Was ist der Unterschied zwischen Python2 und Python3?

Python 3中运行,报错:

Was ist der Unterschied zwischen Python2 und Python3?

选择哪种版本归结为你需要的是什么库

Python 2已经存在更长时间,这可能是一个优势,并不是所有可用于Python 2的库都已移植到Python 3.另一方面,一些开发人员正在为Python 3创建可能与Python 2不兼容的库。对于很多人来说,决定使用Python 2还是Python 3取决于他们想要使用哪些库。当然,如果你正在学习Python来处理现有的Python应用程序,那么学会使用编写软件的Python版本是有意义的。

许多人认为Python 3是Python 2的改进版本,因为一些更新消除了程序员常见的错误(参见上面的打印示例)。如上所述,一些更改使Python 3更易于初学者理解。因此,不需要使用任何特定库的新程序员可能会考虑学习Python 3,因为在未来几年可能会逐渐转向新语言,因为Python 2的更新停止并支持旧版本该语言版本减少。用法统计显示使用Python 3的程序员数量已逐渐增加。

除非有明确的理由选择一个版本的Python而不是另一个版本,例如需要处理用Python 2编写的现有代码,否则不值得担心这个决定。大多数语法在每种语言版本中都是相同的。如果你需要从Python 2切换到Python 3,反之亦然,那么熟悉打印语句/函数的更改以及Python处理整数除法的方式之间的差异不应花费太长时间。

总结:以上就是本篇文章的全部内容,希望能对大家的学习有所帮助。

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen Python2 und Python3?. 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