1. Python
SageMath je založen na rozšířeném programovacím jazyku Python. Díky tomu SageMath obsahuje celou řadu zajímavých matematických balíčků (knihoven) napsaných v tomto jazyce (např. NumPy, SymPy a další). Řada funkcionalit v SageMath je implementována formou rozhraní s jiným open-source matematickým programem. Například některé symbolické operace (úpravy algebraických výrazů, symbolická integrace) jsou počítány pomocí programu Maxima).
V této podkapitole shrneme jenom to nejnutnější minimum týkající se jazyka Python, aby případný čtenář neměl problém chápat a orientovat se v ukázkách níže. Čtenář prahnoucí po hlubším proniknutí do tohoto programovacího jazyka nebude mít problém nalézt zajímavé studijní zdroje na internetu (např. tento tutoriál).
V Pythonu není potřeba deklarovat typ proměnných, k inicializaci se používá standardní symbol přiřazení =.
a = 4
print(a)
a = 'Hello world!'
print(a)
-> 4
-> Hello world!
Často používanou datovou strukturou je tzv. list
, či pole. Pokud chceme list
zadat explicitně používáme k tomu hranaté závorky a prvky oddělujeme čárkami. K prvkům pole pak přistupujeme pomocí indexu běžícího od nuly.
a = [1, 'B', pi ]
print(a[1])
print(len(a))
-> B
-> 3
Nyní se podívejme na jednu specifickou, a pro nováčka potenciálně matoucí vlastnost Pythonu. K oddělení bloku kódu se nepoužívá klíčových slov, ani závorek, ale odsazení. Demonstrujme tento jev na ukázce if-then-else řídící struktury.
if pi > 3:
print('Ano!')
else:
print('Ne!')
-> Ano!
Podobně se chová známý for
cyklus (pod range(4)
je dobré představovat si množinu indexů od \(0\) do \(3\), tedy délky \(4\))
for k in range(4):
y = k^2
print y
-> 0
-> 1
-> 4
-> 9
Pokud chceme definovat vlastní funkci, použijeme pro to klíčové slovo def
.
Všimněte si opět odsazení.
def f(x):
y = 4*x
return y
Dále je dobré zdůraznit, že u argumentů funkcí není potřeba udávat jejich typ. Naše funkce bude fungovat na všech objektech, pro které lze provést operace uvedené v těle funkce. Například:
show(f(4))
show(f(pi))
show(f('Ahoj!'))
-> 16 \\
-> 4 pi \\
-> Ahoj!Ahoj!Ahoj!Ahoj!
Pyhon je objektový jazyk. Prostředí SageMath Worksheet i SageMath Notebook nabízí kontextovou nápovědu snadno vyvolatelnou pomocí klávesy TAB. Zkuste nastavit kurzor za tečku a stisknout ji.
# malé celé číslo
a = 9
print 'Je prvočíslo?'
print a.is_prime()
print 'Faktorizace:'
show(a.factor())
-> Je prvočíslo? \\
-> False \\
-> Faktorizace: \\
-> 3^2
Pokud si nevíme rady s jistou funkcí, můžeme vyvolat nápovědu po stisknoutí TAB klávesy za otevírací závorkou. Případně lze nápovědu vypsat pomocí otazníku za názvem funkce.