Articles

GeeksforGeeks

Posted on
  • Divisionsoperator
  • print-Funktion
  • Unicode
  • xrange
  • Fehlerbehandlung
  • _future_ module

Divisionsoperator

Wenn wir unseren Code portieren oder Python 3.x-Code in Python 2.x verwenden, kann es gefährlich sein, wenn ganzzahlige Divisionsänderungen unbemerkt bleiben (da sie keinen Fehler auslösen). Es ist vorzuziehen, den gleitenden Wert (wie 7.0/5 oder 7/5.0) zu verwenden, um das erwartete Ergebnis zu erhalten, wenn wir unseren Code portieren.

Python

print7/5
print-7/5



Druckfunktion

Dies ist die bekanntestebekannteste Änderung. Dabei wird das Schlüsselwort print in Python 2.x durch die Funktion print() in Python 3.x ersetzt. Allerdings funktionieren Klammern in Python 2, wenn nach dem Schlüsselwort print ein Leerzeichen eingefügt wird, weil der Interpreter es als Ausdruck auswertet.

Python

print'Hello, Geeks'
print('Hope You like these facts')



Wie wir sehen können, wenn wir die Klammern in Python 2.x dann gibt es kein Problem, aber wenn wir in Python 3.x keine Klammern verwenden, bekommen wir einen SyntaxError.

Unicode:

In Python 2 ist ein impliziter str-Typ ASCII. Aber in Python 3.x ist der implizite str-Typ Unicode.

Python

print(type('default string '))
print(type(b'string with b '))



Python 2.x unterstützt auch Unicode

Python

print(type('default string '))
print(type(u'string with b '))



xrange:

xrange() von Python 2.x gibt es in Python 3.x nicht. In Python 2.x liefert range eine Liste, d. h. range(3) liefert, während xrange ein xrange-Objekt liefert, d. h., xrange(3) gibt ein Iterator-Objekt zurück, das ähnlich wie ein Java-Iterator funktioniert und bei Bedarf eine Zahl erzeugt.
Wenn wir mehrfach über dieselbe Sequenz iterieren müssen, bevorzugen wir range(), da range eine statische Liste liefert. xrange() rekonstruiert die Sequenz jedes Mal. xrange() unterstützt keine Slices und andere Listenmethoden. Der Vorteil von xrange() ist, dass es Speicher spart, wenn die Aufgabe darin besteht, über einen großen Bereich zu iterieren.
In Python 3.x tut die Funktion range nun das, was xrange in Python 2.x tut, also sollten wir, um unseren Code portabel zu halten, stattdessen lieber einen Bereich verwenden. Die range-Funktion von Python 3.x ist also xrange aus Python 2.x.

Python

forx inxrange(1, 5):
print(x),
forx inrange(1, 5):
print(x),



Fehlerbehandlung:

Eine kleine Änderung gibt es bei der Fehlerbehandlung in beiden Versionen. In Python 3.x ist das Schlüsselwort ‚as‘ erforderlich.

Python

try:
trying_to_check_error
exceptNameError, err:
printerr, 'Error Caused'



Python

try:
trying_to_check_error
exceptNameError as err:
print(err, 'Error Caused')



__future__ Modul:

Dies ist im Grunde kein Unterschied zwischen den beiden Versionen, aber eine nützliche Sache, die hier erwähnt werden sollte. Die Idee des __future__-Moduls ist es, den Umstieg auf Python 3.x zu erleichtern.
Wenn wir planen, Python 3.x-Unterstützung in unserem 2.x-Code zu haben, können wir _future_-Importe in unserem Code verwenden.
Im folgenden Python-2.x-Code verwenden wir zum Beispiel das Integer-Divisionsverhalten von Python 3.x mit dem Modul __future__.

Python

from__future__ importdivision
print7/5
print-7/5



Output :

1.4 -1.4 

Ein weiteres Beispiel, bei dem wir die Klammern in Python 2.x mit dem Modul __future__:

Python

from__future__ importprint_function

print('GeeksforGeeks')



Ausgabe:

GeeksforGeeks 

Hier finden Sie weitere Details zum Modul __future__.

Dieser Artikel wurde von Arpit Agarwal beigesteuert. Wenn Ihnen GeeksforGeeks gefällt und Sie einen Beitrag leisten möchten, können Sie auch einen Artikel schreiben und Ihren Artikel an [email protected] schicken. Sehen Sie Ihren Artikel auf der GeeksforGeeks-Hauptseite erscheinen und helfen Sie anderen Geeks.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.