Pokud jste začátečník, musíte si položit otázku, s jakou verzí Pythonu by mělo být snadné začít: Python 2 nebo Python 3. No, není to moc debaty, protože každá z verzí má spravedlivý podíl na kladech a záporech . Než se ponoříme do rozdílů mezi těmito dvěma, měli byste si všimnout, že Python 3 je další generací jazyka, který se chystá nahradit verzi 2 do roku 2020. Avšak Python 2.7 je stále nejrozšířenějším jazykem v komunitě Python. Python 3 je nepochybně budoucností Pythonu, zatímco někteří programátoři se na Pythonu 2.7 drželi kvůli jeho omezené podpoře knihoven a balíčkům, které jsou omezeny pouze na verzi 2. Podívejme se podrobně na rozdíl mezi nimi.
Python byl konceptualizován na konci 80. let a jeho implementace začala v roce 1989 Guido van Rossum, který poté pracoval v projektu s názvem „Amoeba“ v holandském CWI v Amsterdamu. Python 2.0 byl propuštěn na 16tis Říjen 2000 s novou technickou specifikací nazvanou Python Enhancement Návrh (PEP), spolu s některými dalšími funkcemi, jako je porozumění seznamu, zvýšená podpora Unicode, detekce cyklu detekce odpadu a další. Postupně se vyvíjel s aktualizovanými verzemi, které přidávaly další funkce do programovacího jazyka ve verzi 2.7.
Python 3 je další generace programovacího jazyka vydaného v prosinci 2008 spolu s několika novými vylepšeními a funkcemi, včetně některých zastaralých funkcí. Verze je zcela odlišná od předchůdců a v současné době se vyvíjí, aby nahradila verzi 2.7. Verze 3 byla vydána pro řešení bezpečnostních problémů a konstrukčních nedostatků v předchozích vydáních, čímž se odstranila nadbytečnost. Mezi hlavní změny v Pythonu 3 patří změna tiskového příkazu na vestavěnou funkci, vylepšené celočíselné dělení, lepší podpora Unicode a další.
Python 2.0 byl propuštěn na konci roku 2000 jako transparentnější a všestrannější proces vývoje jazyka, který nahradil jeho předchůdce, díky některým dalším funkcím, jako je porozumění seznamu a systém sběru odpadků. Proces vývoje se stal transparentnějším díky komunitě díky vydání Pythonu 2.2. Nicméně, jak se programovací jazyky vyvíjejí v průběhu času, mění se také jeho funkčnost, která nakonec způsobuje vývojářům problémy. Výsledkem bylo, že Python verze 3 byl propuštěn na konci roku 2008 s cílem řešit nedostatky designu v předchozích verzích.
Jedním z klíčových rozdílů mezi Pythonem verze 2 a verzí 3 je způsob, jakým funguje příkaz „print“. Stejný skript se v obou verzích nespustí současně. V Pythonu 2.0 je syntaxe tisku považována spíše za příkaz než za funkci, která nevyžaduje, aby byl text zalomen do další dvojice závorek. V Pythonu 3 je však tisk () explicitně považován za funkci, která je také zpětně kompatibilní s verzí 2.7 a která také znamená, že text, který má být vytištěn, by měl být zabalen do závorek, nebo dostanete chybu syntaxe.
Rozdělení dvou celých čísel v Pythonu 2.0 by vždy vrátilo celé číslo a zkrátilo desetinné místo, které se nazývá celočíselné dělení. Jednoduše řečeno, Python 2.0 zachází s číslicemi za desetinnými místy jako celá čísla, což má za následek dělení podlah. Například pokud zadáte výraz 5/2 do Pythonu 2, vrátí jako výsledek 2 místo 2,5. Jednoduše vrátí celé číslo na nejbližší celé číslo. Python 3 však vrací 2,5 jako výsledek, díky kterému je celé číslo intuitivnější a snadno použitelné, zejména pro nováčky.
Text je v Pythonu prezentován pomocí dvou typů řetězců: řetězce Unicode nebo bajty. Unicode je mezinárodní standard pro kódování znaků a řetězec Unicode je datová struktura v jazyce Python, která se používá k ukládání textu, zatímco bajty se používají k ukládání libovolných binárních dat. V Pythonu 2 musí být každý jednotlivý řetězec Unicode označen předponou „u“, protože ve výchozím nastavení používá znaky ASCII, což není tak flexibilní jako kódování Unicode. Python 3 však ve výchozím nastavení ukládá řetězce jako Unicode, které jsou univerzálnější než řetězce ASCII.
Funkce „xrange“ Pythonu 2 v Pythonu 3 neexistuje, protože je ve verzi 3 zastaralá a nahrazena „range ()“. Funkce Range je výkonnější než xrange Python 2, což zrychluje, když opakování vícekrát ve stejné sekvenci. Funkce Range se chová jako funkce xrange verze 2.0. Jednou z hlavních výhod funkce xrange je však to, že objekt xrange vždy vezme stejné množství paměti bez ohledu na velikost rozsahu, který představuje..
Python je univerzální programovací jazyk na vysoké úrovni používaný pro univerzální programování a snadno se učí, bez ohledu na to, zda se rozhodnete pracovat s Pythonem verze 2.0 nebo verzí 3. Je to obtížné rozhodnutí jak pro komunitu, tak pro nováčky přesunout se z Pythonu 2 do Pythonu 3. Zatímco obě verze sdílejí některé podobnosti z hlediska funkčnosti, neměly by se s nimi zacházet jako s plně zaměnitelnými, protože k přechodu dojde, tak či onak. Přestože je Python 2 starším a stále nejpopulárnějším programovacím jazykem v komunitě, Python 3 je jazyk příští generace, který má zůstat.