Prijavi se na najbolj priljubljen tečaj: WEB DEVELOPMENT 1.
Poglej več

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: september 2023

    Mesec september prinaša nove zaposlitve v programiranju. Na voljo je kar nekaj različnih nivojev in vrst zaposlitve, tako da vabljeni k branju in seveda prijavi na delovno mesto. Kaj pa…
  • Tečaji “Smartninja šola programiranja” explained

    Zaradi aktivnega sodelovanja naših inštruktorjev in velikega interesa tečajnikov Smartninja šola programiranja nenehno dodeluje in dodaja nove tečaje programiranja. Vrata priložnosti za izboljšanje digitalnih veščin so pri nas vedno odprta!…
  • Zaposlitve v programiranju: avgust 2023

    Nov mesec, nove zaposlitve! V avgustu se že kar nekaj podjetij zbuja iz poletnega dopustovskega spanca (😉) in na voljo so nove zaposlitve v programiranju! Kam se prijaviš? Monolit Monolit…
  • Učenje programiranja: doma ali na univerzi?

    V zadnjih letih se je programiranje in spletno razvijanje uveljavilo kot ena najbolj zaželenih veščin na trgu dela. Z naraščajočim povpraševanjem po programerjih se postavlja vprašanje, ali je bolje programiranje…