BI-ZMA Základy matematické analýzy
Jdi na navigaci předmětu

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.