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:

and def finally in print
as del for is raise
assert elif from lambda return
break else global not try
class except if or while
continue exec import pass  

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.