Komentáře

Jako každý programovací jazyk, má i Jython možnost komentářů. Sama praxe doporučuje komentáře používat. Komentář by se měl vždy objevit v místě, kde jste použili nějaký neobvyklý programátorský obrat, a pak i v místě, kde jste něco zkoušeli. Neuděláte-li to, dá se očekávat, že v budoucnu čas, který strávíte přemýšlením nad těmito neokomentovanými částmi, bude podstatně delší než čas, který potřebujete na napsání komentáře.

Jython umožňuje pouze jednořádkové komentáře. Komentář začíná znakem # (hash) a vše, co je za ním do konce řádky, je chápáno jako komentář.

>>> #Toto je komentar
>>>
>>> x = 1 #Toto je take komentar

Proměnné a identifikátory

Základním kamenem všech programů je proměnná. Je to pojmenovaná oblast paměti, ve které je něco uloženo. Co to je, závisí již na konkrétním programovacím jazyku. V Jythonu, proměnná téměř vždy obsahuje odkaz (referenci) na nějaký objekt. Tím objektem může být objekt základních vestavěných datových typů jako číslo, seznam, tuple (ne, to není překlep, co je tuple se dozvíte později), asociativní pole či jiná instance z bohatého výběru tříd Jythonu či Javy.

Názvy proměnných, identifikátory, mohou být libovolné. Je však lépe dodržovat již osvědčené pravidlo: použít libovolně dlouhou posloupnost písmen anglické abecedy, číslic a podtržítek, která nezačíná číslicí.

Pomocí identifikátorů se neoznačují jen proměnné, ale i řada dalších prvků jazyka. Mohou to být funkce, moduly, třídy. Aby byl výsledný kód čitelný i pro jiné programátory a jelikož je Jython úzce spjat s prostředím jazyka Java, je vhodné dodržovat určité konvence. Tyto konvence jsou totiž dodržovány jak v Jythonu, tak v celém Java Core API a jejich znalost vám umožní (mimo jiné) vyznat se v něm.

Jython, stejně jako Java, rozlišuje malá a velká písmena a poměrně často se setkáte s tím, že dva identifikátory jsou rozlišeny pouze velikostí písmen. Množství znaků použitých v identifikátoru nehraje roli. Mezery nejsou povoleny.

Identifikátory nemohou mít stejná jména jako klíčová slova, která jsou v Jythonu rezervovaná, a jejichž seznam je uveden níže:

anddeffinallyinprint
asdelforisraise
asserteliffromlambdareturn
breakelseglobalnottry
classexceptiforwhile
continueexecimportpass 

Vznik proměnné

Jython je skriptovací jazyk, ve kterém proměnné nejsou explicitně deklarovány. Vznikají automaticky při svém prvním použití. To však neznamená, že zde neexistuje typová kontrola. Naopak, typová kontrola zde existuje, ale je před uživatelem skryta. Provádí se interně. V porovnání s jinými programovacími jazyky můžeme tvrdit, že Jython patří mezi jazyky s dynamickým přiřazováním datových typů se silnou typovou kontrolou.

Proměnná tedy vznikne tak, že se pomocí přiřazovacího příkazu vytvoří vazba mezi identifikátorem a objektem nějakého datového typu. Proměnná pak obsahuje v sobě odkaz na tento objekt. Tedy nikoliv vlastní hodnotu, jako např. číslo 4, ale odkaz na objekt, který toto číslo nějakým způsobem reprezentuje.

Základní datové typy

Numerické typy

Integer

Implementace tohoto typu odpovídá datovému typu int jazyka Java, tj. 32-bitová celočíselná hodnota se znaménkem. Jython nepodporuje kratší celočíselné datové typy korespondující s javovskými typy byte, short.

Výsledkem jakékoliv operace mezi celými čísly je vždy typ integer. To může způsobit občas „podivné" chyby při dělení:

>>> 1 / 2
0
>>> 7 / 3
2
>>> 7 / -3
-3

Long

Celočíselný datový typ s libovolnou přesností. Nesmí se plést se základním datovým typem long, který znáte z Javy. Jython reprezentuje datový typ long jako instanci třídy java.math.BigInteger. Literály typu long se řídí stejnými pravidly jako typ integer, s jedinou výjimkou: jsou ukončeny písmenem „l" nebo „L":

>>> # dlouhe cislo 
>>> d1 = 12345678123456789L
>>> d2 = 123456123654321L
>>>
>>> d1
12345678123456789L
>>>
>>> d2
123456123654321L
>>>
>>> d1/d2
100L

Float

Reprezentuje datový typ reálných čísel. Jython implementuje reálná čísla stejně, jako Java implementuje datový typ double , tj. s 64-bitovou přesností. Obdobně jako v případě typu integer, kratší reálné datové typy Jython neimplementuje. Reálná čísla se zapisují stejně, jako čísla celá, avšak obsahují desetinou tečku.

Aritmetické operátory mají implementovány plnou podporu reálných čísel. V případě, že aritmetický operátor obsahuje jak celočíselné tak reálné hodnoty, jsou celočíselné hodnoty automaticky převedeny na reálné:

>>> 10 / 3.
3.3333333333333335
>>>
>>> 1. / 2.
0.5
>>>
>>> 0.025 / 3.
0.008333333333333333

Complex

Jython obsahuje též podporu komplexních čísel. Komplexní čísla jsou reprezentována jako uspořádaná dvojice reálných čísel. Zápis komplexních čísel můžeme vidět níže:

>>> 1 + 2j
(1+2j)
>>>
>>> 3.0J
3j
>>> 1.3 + 0.5j
(1.3+0.5j)
>>> complex(1,5)
(1+5j)
>>>
>>> (1 + 2j) / (3 - 1j)
(0.1+0.7j)
>>> a = 1 + 05.j
>>> a.real
1.0
>>> a.imag
5.0

Numerické funkce

Jython obsahuje několik vestavěných funkcí, které umožňují pracovat s numerickými hodnotami. Kromě těchto funkcí je možné použít standardní modul math, ve kterém jsou definovány další užitečné matematické funkce.

Podrobnější informace o numerických funkcích se dozvíte v následujícím díle seriálu.