Articles

GeeksforGeeks

Posted on
  • Division operator
  • print functie
  • Unicode
  • xrange
  • Error Handling
  • _future_ module

Division operator

Als we onze code porten of python 3.x code uitvoeren in python 2.x, kan het gevaarlijk zijn als integer division veranderingen onopgemerkt blijven (omdat het geen foutmelding geeft). Het verdient de voorkeur om de drijvende waarde te gebruiken (zoals 7.0/5 of 7/5.0) om het verwachte resultaat te krijgen bij het porten van onze code.

Python

print

7/5

print-7/5



afdrukfunctie

Dit is de bekendstebekende verandering. Hierin wordt het print sleutelwoord in Python 2.x vervangen door de print() functie in Python 3.x. Haakjes werken in Python 2 echter wel als er een spatie wordt toegevoegd na het print sleutelwoord, omdat de interpreter het als een expressie evalueert.

Python

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



Zoals we kunnen zien, als we haakjes gebruiken in python 2.x dan is er geen probleem, maar als we geen haakjes gebruiken in python 3.x, krijgen we SyntaxError.

Unicode:

In Python 2 is een impliciet str-type ASCII. Maar in Python 3.x is het impliciete str type Unicode.

Python

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



Python 2.x ondersteunt ook Unicode

Python

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



xrange:

xrange() van Python 2.x bestaat niet in Python 3.x. In Python 2.x, retourneert range een lijst, d.w.z. range(3) retourneert terwijl xrange een xrange object retourneert, d.w.z., xrange(3) retourneert een iterator object dat vergelijkbaar werkt met Java iterator en een getal genereert wanneer dat nodig is.
Als we meerdere keren over dezelfde reeks moeten itereren, geven we de voorkeur aan range() omdat range een statische lijst geeft. xrange() reconstrueert de reeks iedere keer. xrange() ondersteunt geen slices en andere lijst methoden. Het voordeel van xrange() is, dat het geheugen bespaart als de taak is om over een groot bereik te itereren.
In Python 3.x, doet de range functie nu wat xrange doet in Python 2.x, dus om onze code draagbaar te houden, willen we misschien in plaats daarvan een range gebruiken. Dus Python 3.x’s range functie is xrange uit Python 2.x.

Python

forx inxrange(1, 5):

print(x),

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



Error Handling:

Er is een kleine verandering in de foutafhandeling in beide versies. In python 3.x is het ‘as’ sleutelwoord vereist.

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__ module:

Dit is in principe geen verschil tussen de twee versies, maar wel nuttig om hier te vermelden. Het idee van de __future__ module is om te helpen bij de migratie naar Python 3.x.
Als we van plan zijn om Python 3.x ondersteuning te hebben in onze 2.x code, kunnen we _future_ imports gebruiken in onze code.
Bijv. in de Python 2.x code hieronder, gebruiken we Python 3.x’s integer division gedrag met behulp van de __future__ module.

Python

from

__future__ importdivision

print

7/5

print-7/5



Uitvoer :

1.4 -1.4 

Een ander voorbeeld waar we haakjes gebruiken in Python 2.x met behulp van de module __future__:

Python

from__future__ importprint_function

print('GeeksforGeeks')



Uitvoer:

GeeksforGeeks 

Refereer hiernaar voor meer details over de __future__ module.

Dit artikel is geschreven door Arpit Agarwal. Als je GeeksforGeeks leuk vindt en een bijdrage wilt leveren, kun je ook een artikel schrijven en je artikel mailen naar [email protected]. Zie je artikel verschijnen op de GeeksforGeeks hoofdpagina en help andere Geeks.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *