přihlásit 6721/823025

Gramatika

Tak jako lidské jazyky, tak i ty počítačové mají gramatiku. Naštěstí nic tak složitého, jako je shoda přísudku s podmětem v příčestí minulém. U programovacích jazyků se střetnete s jinými termíny. Například podmínka, cyklus, operátor, příkaz, výraz a podobně.

Řada těchto věcí je plus minus společná všem programovacím jazykům. Jednotlivé jazyky se liší ale způsobem zápisu, tedy syntaxí. Třeba podmínka se vyskytuje snad ve všch programovacích jazycích, ale v Pythonu se zapisuje trochu jinak než například v jazyce C. Jiné řídící konstrukce tak obvyklé nejsou, například Python podporuje výjimky, kdežto jazyk C nikoli. Ten zas podporuje oproti Pythonu více druhů cyklů.

Nikde jsem bohužel nenašel přesné formální definice Pythoní gramatiky (popis lexikálního analyzeru za to nepovažuji, i když leccos napovídá), které by jednoznačně definovaly co je co. Proto zkusím jazyk Python popsat podle sebe, svého citu a znalostí o něm. Pokud možno tak, aby to bylo logické a snadno pochopitelné. Zcela vědomě se proto nebudu plně držet údajů v Language Reference. Berte to prosím jako můj osobní alternativní popis jazyka Python pro začátečníky.

Jazyk Python se dá rozdělit na 6 základních útvarů:

odsazení
Je tvořeno mezerami nebo tabelátory na začátku každého řádku. Slouží k vymezení bloku příkazů.
identifikátory
Programátorem definované názvy datových objektů, se kterými pracuje. Identifikátor je slovo, které se může skládat ze znaků a až z, A až Z (bez diakritiky), 0 až 9 a podtržítka. Znak 0 až 9 nesmí být první znak. Identifikátory nemohou být shodná s klíčovými slovy. Rozlišuje se mezi velkými a malými písmeny. Tedy promenna a Promenna jsou dva různé identifikátory.
klíčová slova
Názvy řídících příkazů a konstrukcí jazyka Python. Lze je považovat za předefinované identifikátory (za kterými ale nestojí datové objekty) nebo vyhrazená slova. Kompletní seznam klíčových slov:
and       del       for       is        raise    
assert    elif      from      lambda    return   
break     else      global    not       try      
class     except    if        or        while    
continue  exec      import    pass      yield    
def       finally   in        print
literály
Textový zápis hodnot (data) některých zabudovaných datových typů. Literály oddělené středníkem jsou například: 10; 10.1; "nějaký text"; ["seznam", "seznam"] a podobně.
operátory
Operátory jsou znamenka, která slouží k definování (vyvolávání) operací nad daty. Operace může být například sečtení dvou čísel, které je vyvoláno znaménkem (operátorem) plus. Seznam všech operátorů (na prvním řádku jsou numerické, na druhém binární a na třetím porovnávací operátory):
+       -       *       **      /       //      %
<<      >>      &       |       ^       ~
<       >       <=      >=      ==      !=      <>
oddělovače
Oddělovače rozdělují kód na části. Mají význam řídících konstrukcí a z pohledu programátora je smysluplnější některé z nich považovat za operátory. Rozdělění jak je uvedeno zde je z pohledu lexikálního analyzátoru. Některé oddělovače mohou mít podle kontextu více významů. Například [] může být součást definice literálu seznamu nebo výřez z posloupnosti. V tomto druhém případě lze [] vnímat jako operáor.
(       )       [       ]       {       }      @
,       :       .       `       =       ;
+=      -=      *=      **=     /=      //=     %=
&=      |=      ^=      >>=     <<=

Program bychom si mohli definovat jako sled příkazů. Ukázka programu, kde každý řádek představuje jeden příkaz:

jablon1 = 60
jablon2 = 48
celkem = jablon1 + jablon2
print "Úroda sadu je", celkem, "jablek."

Každý příkaz se skládá z jednoho nebo více výrazů. U Pythonu je velmi těžké stanovit jednoduše a přesně co je výraz a co už příkaz, kde je mezi nimi hranice.


Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /web/htdocs2/wraithcz/home/www/python/data/sessions/sessions1.php on line 2