Python 2 VS Python 3

Vsak, ki programira v programskem jeziku Python, se slej kot prej sreča s primerjavo ali kakšno debato na forumih glede dveh različnih verzijah Pythona- 2 in 3. Sploh za začetnike lahko to predstavlja dilemo, saj niso prepričani s katero verzijo je pametneje začeti. Po mojem mnenju je najboljši nasvet glede tega, da začnejo z verzijo, ki jo uporablja njihov tutorial, kasneje pa lahko nadoknadijo in si pogledajo razlike.
V primeru, da delate na novem projektu in morate izbrati verzij 2 ali 3, je spet težko rečti, saj ni 100 % pravega odgovora, razen v primeru, če uporabljate nek library oz. knjižnico, ki jo podpira samo verzija 2 oz. 3.
Kakorkoli, spodaj sem navedel nekaj glavnih razlik med verzijama, najbrž se boste strinjali, da se ne razlikujeta prav grozno veliko :).


Funkcija print()

Ena izmed glavnih in najbolj opaznih razlik je bila sprememba pri ukazu ‘print’, ki je v verziji 3 postal funkcija- torej print().
Tekst, ki ga hočemo izpisati v verziji 3, mora biti nujno med narekovaji in znotraj oklepajev, medtem ko pri verziji 2 to ni bilo potrebno, hkrati pa je bila ta sposobna zanemariti oklepaje, če smo zapisali ‘print’ ukaz kot funkcijo.

PYTHON 2

print 'Python', python_version()
print 'Hello, World!'
print('Hello, World!')
print "tekst", ; print 'in se vec teksta v isti liniji'

V terminalu dobimo to:

>> Python 2.7.6
Hello, World!
Hello, World!
tekst in se vec teksta v isti liniji

Zakaj nisem uporabil šumnikov? Do tega še pridemo 🙂

PYTHON 3

print('Python', python_version())
print('Hello, World!')
print("nek tekst,", end="")
print(' in še nek tekst v isti liniji')

V terminalu dobimo to:

Python 3.4.1
Hello, World!
nek tekst in še nek tekst v isti liniji


print 'Hello, World!'

File "", line 1
    print 'Hello, World!'
                            ^
SyntaxError: invalid syntax

Deljenje integer števil

Precej nevarna stvar, če program temelji na pravilnem računanju integerjev. V verziji 2 je deljenje pri temu podatkovnemu tipu bilo računanje ob nepravilnem zapisu precej zoprno. Za boljše razumevanje si poglejte spodnje primere.

PYTHON 2

print 'Python', python_version()
print '3 / 2 =', 3 / 2
print '3 // 2 =', 3 // 2
print '3 / 2.0 =', 3 / 2.0
print '3 // 2.0 =', 3 // 2.0

V terminalu dobimo to:

Python 2.7.6
3 / 2 = 1
3 // 2 = 1
3 / 2.0 = 1.5
3 // 2.0 = 1.0

PYTHON 3

print('Python', python_version())
print('3 / 2 =', 3 / 2)
print('3 // 2 =', 3 // 2)
print('3 / 2.0 =', 3 / 2.0)
print('3 // 2.0 =', 3 // 2.0)

V terminalu dobimo to:

Python 3.4.1
3 / 2 = 1.5
3 // 2 = 1
3 / 2.0 = 1.5
3 // 2.0 = 1.0

Torej če smo hoteli v verziji 2 dobiti rezultat z decimalnimi mesti, smo morali deljencu ali delitelju dodati ‘.0’, medtem ko novejša verzija 3 to naredi avtomatično.


Unicode

Python 2 podpira podatkovni tip string z znaki ASCII (brez šumnikov & ostalih drugačnih znakov), ločeno metodo unicode() in brez podpore za podatkovni tip ‘byte’.
V Pythonu 3 string avtomatično podpira vse Unicode znake in obstajata 2 byte podatkovna tipa: byte in bytearray (s tem, da byte podpirajo samo ASCII znake).

PYTHON 2

print type(unicode("Isto naredi verzija 3 s string podatkovnim tipom"))
print type(b"Byte ne obstaja")
print type(bytearray(b"Bytearray tudi ne"))

PYTHON 3

print("Stringi v Python 3 podpirajo tudi šumnike!")
print(type(b"Podpira tudi byte"))
print(type(bytearray(b"in bytearray-e")))

Te razlike se najbolj opazne, ostale si lahko ogledate v Pythonovi dokumentaciji.

Ste že kdaj uporabljali Python? Zakaj? Kaj glede njega vam je všeč, kaj ne?
Povejte svoje mnenje v komentarjih spodaj & če vam je bil članek všeč, ga delite s prijatelji :).

Nadaljuj z branjem

  • Zaposlitve v programiranju: marec 2023

    Po novem letu na spletu kar mrgoli zaposlitev v IT sektorju. Preveri aktualne zaposlitve v programiranju, in IT-ju, ki ti bodo morda pisane na kožo. V asortiman Smartninja zaposlitev dodajamo…
  • Preden se odločiš za tečaj programiranja, si preberi tole

    Če ne izhajaš iz študija (ali srednje šole) programiranja ali računalniške tehnologije, je velika verjetnost, da ne veš, ali bi bil tečaj programiranja prava izbira zate. Porajajo se vprašanja, kot…
  • Zaposlitve v programiranju: februar 2023

    Ali te zanimajo trenutno razpisani oglasi za delo na področju programiranja in IT-ja? Preveri naš blog zapis, kjer te čaka nekaj odličnih predlogov za zaposlitve v programiranju! Celtra Celtra je…
  • Odloči se za programiranje! 6 razlogov, zakaj

    Ali veš, da so programerji neverjetno radovedni ljudje? Prav to, da jih vedno zanima, kako stvari delujejo v zaledju (pa tudi njihova nenehna potreba po optimiziranju stvari) jih spodbuja h…