NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!

Lekce 1 - Úvod do Pythonu

Vítejte u prvního tutoriálu populárního on-line kurzu programovacího jazyka Python. Programovat se budeme učit postupně od úplných začátků až po složité konstrukce a objektové modely. Dále se naučíme pracovat s databází a vyvíjet webové aplikace. S trochou trpělivosti a vytrvalosti se z tebe stane dobrý programátor.

PRO TIP: Studuješ rekvalifikační kurz a máš v osnově spoustu textu k přečtení? Vyzkoušej audiovizuální podobu našich kurzů 🎥 Lekci si spustíš jako příjemnou přednášku tlačítkem Spustit obsah jako přednášku výše.

Kompletní kurzy programování v Pythonu - Základní konstrukce jazyka Python

Minimální požadavky kurzu

Na tento kurz nepotřebujete žádné speciální znalosti, stačí běžná práce s počítačem 🙂

Vývoj programovacích jazyků

Abychom plně porozuměli jazyku Python, ohlédneme se do minulosti na to, jak se programovací jazyky vyvíjely. Bude pro nás totiž důležité pochopit, jak Python pracuje a proč je dobré programovat právě v tomto jazyce.

1. generace jazyků – Strojový kód

Procesor počítače umí vykonávat jen omezené množství jednoduchých instrukcí, které jsou uloženy jako sekvence bitů, jsou to tedy čísla. Ta se mu obvykle zadávají v hexadecimální (šestnáctkové) soustavě. Instrukce jsou tak elementární, že umožňují pouze např. sčítání adres nebo skoky mezi instrukcemi. Nelze např. jednoduše sečíst dvě čísla, musíme se na čísla dívat jako na adresy v paměti a takové sečtení čísel zabere několik instrukcí. Program sčítající dvě čísla by vypadal např. takto:

2104
1105
3106
7001
0053
FFFE
0000

Instrukce se procesoru předloží v binární podobě. Takovýto kód je samozřejmě extrémně nečitelný a závisí na instrukční sadě daného CPU. V tomto jazyce určitě nebude jednoduché tvořit nějaké programy. Platí, že každý program musí být nakonec do tohoto jazyka přeložen, aby mohl být na procesoru počítače spuštěn:

Základní konstrukce jazyka Python

2. generace jazyků – Assembler

Assembler (zkráceně ASM) není o nic jednodušší než strojový kód, ale je lidsky čitelný. Jedná se o strojový kód, ve kterém mají instrukce slovní označení (kód), člověk si tedy nemusí pamatovat čísla. Kódy instrukcí se poté přeloží do výše uvedeného strojového kódu. Stejný program by v ASM vypadal takto:

ORG 100
LDA A
ADD B
STA C
HLT
DEC 83
DEC –2
DEC 0
END

Vidíme, že podoba je poněkud lidštější, ale nezasvěcení lidé stále vůbec netuší, jak program funguje (včetně mne).

3. generace jazyků

Jazyky ve třetí generaci konečně nabízejí uživateli určitou abstrakci toho, jak program vidí počítač. Zaměřují se totiž na to, jak program vidí člověk. Naše čísla jsou již vnímána jako proměnné a zdrojový kód připomíná matematický zápis.

Sečtení dvou čísel by v jazyce C vypadalo takto:

int main(void)
{
    int a, b, soucet;
    a = 83;
    b = -2;
    soucet = a + b;
    return 0;
}

Všichni asi tušíme, co program dělá: sečte čísla 83 a -2 a výsledek uloží do proměnné soucet. U všech jazyků třetí generace je samozřejmě výhodou vysoká čitelnost.

S dalším vývojem šly jazyky ještě dál a přinesly objektově orientované programování, ale o tom až později.

Kategorie jazyků

Jazyky třetí generace můžeme v zásadě rozdělit do dvou kategorií.

1. Kompilované jazyky

Kompilované (neřízené) jazyky mají svůj zdrojový kód zapsaný v jazyce, kterému lidé dobře rozumí. Zdrojový kód se samozřejmě musí přeložit do strojového kódu, aby ho bylo možné spustit na procesoru. Tento překlad zajišťuje překladač (kompiler), který přeloží najednou celý program do stroj. kódu:

Základní konstrukce jazyka Python

Výhody kompilace

Mezi hlavní výhody kompilace patří:

  • Rychlost – Jediné zpomalení spočívá v jednorázové kompilaci. Přeložený program poté běží srovnatelně rychle, jako kdyby byl napsán např. v ASM.
  • Nepřístupnost zdroj. kódu – Program se šíří již zkompilovaný. Není jej tedy možné jednoduše modifikovat, pokud zároveň nevlastníte jeho zdrojový kód.
  • Snadné odhalení chyb ve zdroj. kódu – Pokud zdrojový kód obsahuje chybu, celý proces kompilace spadne. Kompilátor programátorovi poté sdělí, co mu způsobilo problém. To značně zjednodušuje vývoj.

Nevýhody kompilace

Kompilace s sebou samozřejmě přináší několik nevýhod:

  • Závislost na platformě – Program je zcela závislý na platformě, tedy na typu procesoru a operačním systému. Zkompilovaný program nemůžeme vzít a přenést na jinou platformu bez toho, aniž ho na této nové platformě zkompilujeme.
  • Nemožnost editace – Jakmile se program jednou zkompiluje do strojového kódu, nelze ho editovat jinak než opětovnou kompilací.
  • Memory management – Vzhledem k tomu, že počítač danému programu nerozumí a jen mechanicky vykonává instrukce, můžeme se někdy setkat s velmi nepříjemnými chybami s přetečením paměti. Kompilované jazyky nemusí mít automatickou správu paměti a jsou to jazyky nižší (s nižším komfortem pro programátora). Běhové chyby způsobené zejména špatnou správou paměti se kompilací neodhalí.

Příkladem kompilovaných jazyků jsou např. jazyk C, jeho objektový následník C++ nebo Pascal / Delphi.

2. Interpretované jazyky

Interpretace se snaží řešit problém přenositelnosti programů mezi různými platformami. Přichází též s vyšším komfortem pro programátora. Interpret funguje podobně jako kompiler, jen nepřekládá program celý najednou, ale pouze to, co je v danou chvíli potřeba. (Interpreter znamená v angličtině tlumočník, tedy nejprve vyslechne jednu větu mluvčího a tu poté přeloží a vysloví. Překlad probíhá během proslovu, tedy běhu programu, po větách/instrukcích. Kompiler/překladač přeloží rozhovor celý najednou a poté ho celý přečte.) Můžeme si představit, že výše uvedený zdrojový kód by interpret četl po jednotlivých řádcích, tu část by vždy zkompiloval do strojového kódu a vykonal. Výsledek kompilace by zahodil a přesunul by se na další řádek. Možná vám to připadá jako plýtvání výkonem procesoru a je pravda, že tento způsob běhu programu také není zrovna nejrychlejší:

Základní konstrukce jazyka Python

Výhody interpretu

Jaké může mít tedy tento postup výhody? Je jich hned několik:

  • Přenositelnost – Program je plně přenositelný. Pokud existuje interpret pro danou platformu, půjde tam zdrojový kód programu spustit (a vývoj interpretu je snazší než vývoj kompilátoru).
  • Jednodušší vývoj – Ve vyšších jazycích jsme odstíněni od správy paměti, kterou za nás dělá tzv. garbage collector. Často ani nemusíme zadávat datové typy. Máme také k dispozici vysoce komfortní kolekce a další struktury.
  • Stabilita – Díky tomu, že interpret kódu rozumí, předejde chybám, které by zkompilovaný program jinak klidně vykonal. Běh interpretovaných programů je tedy určitě bezpečnější. Umožňuje též zajímavou vlastnost, tzv. reflexi, kdy program za běhu zkoumá sám sebe (o tom si také povíme později).
  • Jednoduchá editace – Program můžeme vyvíjet po částech a nahrávat na cílové umístění. Díky tomu, že se nemusí kompilovat, jej můžeme jednoduše editovat "za běhu".

Nevýhody interpretu

Interpret má však tři zásadní nevýhody:

  • Rychlost – Interpretace může být mnohdy velmi pomalá a program tak plně nevyužívá výkon počítače.
  • Často obtížné hledání chyb – Kvůli kompilaci za běhu se chyby v kódu objeví, až když je kód spuštěn. To může být někdy velmi nepříjemné.
  • Zranitelnost – Protože se program šíří v podobě zdrojového kódu, každý do něj může zasahovat, nebo dokonce krást jeho části.

Příkladem interpretovaného jazyka je právě Python nebo např. PHP.

Přístupy kompilátoru a interpreteru lze spojit a na tomto principu fungují jazyky s tzv. virtuálním strojem. Python ovšem není jedním z nich. Pokud vás tato problematika zaujala, můžete se podívat na principy fungování jazyka Java.

Python

Python je dynamicky interpretovaný jazyk, kód se tudíž překládá až za běhu, čímž se případné chyby projeví teprve při spuštění. Výhodou je, že je jazyk díky tomuto přístupu jednodušší.

Python 2 a 3

Začátečníkům může připadat matoucí, že existují dvě podporované verze Pythonu:

  • Python 2
  • Python 3

Vývojáři pozměnili pro Python 3 syntaxi. Asi největším rozdílem v této verzi je používání závorek při volání funkcí. Tato změna způsobila, že mnoho uživatelů zůstalo u verze 2. Existuje proto mnoho knihoven napsaných pro Python 2, které stále čekají na portování do Pythonu 3.

Python verze 3 je však modernější! Ve výchozím nastavení používá Unicode a obsahuje mnoho dalších vylepšení. Často se doporučuje začít právě s Pythonem 3. Vracet se k verzi 2 má smysl snad jen kvůli nutnosti použít z nějakého důvodu platformu nebo knihovny dostupné pouze pro Python 2.

Nyní víme, co to Python je a k čemu se používá.

V příští lekci, PyCharm a první konzolová aplikace v Pythonu, si ukážeme práci s prostředím PyCharm a vytvoříme si svůj první program.


 

Všechny články v sekci
Základní konstrukce jazyka Python
Přeskočit článek
(nedoporučujeme)
PyCharm a první konzolová aplikace v Pythonu
Článek pro vás napsal gcx11
Avatar
Uživatelské hodnocení:
2919 hlasů
(^_^)
Aktivity