Python
Python je vysokoúrovňový skriptovací programovací jazyk, který v roce 1991 navrhl Guido van Rossum. Nabízí dynamickou kontrolu datových typů a podporuje různá programovací paradigmata, včetně objektově orientovaného, imperativního, procedurálního nebo funkcionálního. -- Wiki
Python byl původně navržený jako jazyk pro výuku programování. Proto se výborně hodí jako tvůj první programovací jazyk. Říká se, že nejtěžší je naučit se právě ten první, neboť to obnáší i nemalou změnu myšlení. Ale s Pythonem je naučit se myslet jako počítač snadné. Hlavní myšlenky, které stojí za filozofií Pythonu si můžeš přečíst po zadání následujícího příkazu do jeho interpretu
>>> import this
Skript
Aby jsi nemusela všechny instrukce stále dokola vypisovat do
interaktivního shellu, můžeš je všechny zapsat do textového souboru s
příponou .py
a ten pak interpretu PYTHON
předat ke spuštění jako
parametr. V adresáři scripts
nalezneš krátký skript reboot.py
.
Prohlédni si ho, klidně ho i uprav a pokus se pochopit co dělá. Spustit
ho můžeš příkazem
$ python reboot.py
Komentáře
Komentář je pro Python cokoliv za znakem vězení #
až do konce řádku.
Python komentáře ignoruje, ale ty by jsi neměla. Právě naopak bys jich
měla psát co nejvíce, aby jsi se ve svých skriptech vyznala nejen ty i
po dlouhých letech.
Typografie
Python používá pro definici funkčních bloků kódu odsazení. Zlatým standardem jsou přesně čtyři mezery. Dávej velký pozor, aby jsi je používala správně. Každá mezera se počítá.
Program
Skript psaný v Pythonu lze přirovnat k receptu na chutnou buchtu. Jen namísto špinění nádobí importuješ moduly, za ingredience slouží data, které chceš zpracovat a celý postup zapisuješ abstraktně a algoritmicky tak jak se má provádět. K řízení programu slouží podmínky, cykly, funkce a metody objektů. V Pythonu je všechno objekt a metoda je jeho vlastní funkce, pomocí niž s ním můžeš manipulovat.
Modul
Importování modulů je první věcí, kterou při psaní skriptů v Pythonu budeš často dělat. Moduly obsahují kód, který napsal někdo jiný a na tobě je jen ho správně použít. Mnoho modulů je sdruženo v knihovnách. Tou nejzajímavější pro tebe je bezpochyby AstroPy. Její použití je přímočaré
>>> import astropy
Dalšími, které můžeš shledat užitečnými, jsou knihovny standardně používané pro vědecké výpočty a prezentaci jejich výsledků
- NumPy výpočty s vektory a maticemi
- SciPy nejrůznější vědecké funkce
- SymPy symbolické počty a operace
- Seaborn vizualizace statistik
- Matplotlib kreslení nejrůznějších grafů
- Pandas pohodlná manipulaci s komplexními daty
V mnoha skriptech se můžeš na prvních řádcích shledat s jejich použitím následujícím způsobem
import numpy as np
import scipy as sp
import pandas as pd
import seaborn as sns
from matplotlib import pyplot as plt
Speciálně pro SymPy je doporučena dvojice příkazů, která připraví prostředí pro pohodlné hraní si s ním
>>> from sympy import init_session
>>> init_session()
Proměnné
Proměnné slouží k uchování hodnot, které se časem mohou měnit.
Číslo
>>> cislo = 42
S čísly, která mohou být i komplexní, můžeš zacházet naprosto přirozeně
a používat známé algebraické operace. Sčítání +
, odčítání -
,
násobení *
a dělení /
. Celočíselné dělení se provádí pomoci //
a
zbytek po něm získáš operátorem modulo %
.
Řetězec
>>> slovo = "auto"
Jen ty operátory, která mají smysl, se dají použít i na proměnné obsahující text. Schválně hádej co bude výsledkem této operace
>>> 3 * slovo + "bus"
Další kouzla můžeš s textovým řetězcem provádět pomocí jeho metod. Například změnit první písmeno na velké
>>> slovo.title()
Seznam všech metod, které jsou pro daný objekt k dispozici ti napoví
našeptávač v Jupyter konzoli nebo notebooku. Prostě po napsání jména
objektu a tečky .
, která se používá jako oddělovač metod, zmáčkni
klávesu Tab
a uvidíš
>>> slovo.<Tab>
Seznam
>>> seznam = ["mleko", "maslo", "vajicka", "mouka"]
Seznamy se používají k uchování více hodnot, třeba i různých typů, pospolu. K jednotlivým položkám můžeš přistupovat pomocí indexu
>>> seznam[0]
Entice
>>> entice = (0, 1, 2, 3)
Obsah entice nemůžeš měnit. Jak ji jednou vytvoříš, už taková zůstane. Stejně jako u seznamu ale můžeš jednotlivé prvky získat pomocí indexu.
Slovník
>>> slovnik = {"mleko": 0, "maslo": 1, "vajicka": 10, "mouka": 2}
Slovník je speciální seznam, jehož položky jsou pojmenované. Jméno slouží jako klíč pro přístup k hodnotám jednotlivých prvků
>>> slovnik["mleko"]
Délku všech výčtových typů získáš pomocí funkce len()
.
Podmínky
Při rozhodování se uplatňují podmínky, které po vyhodnocení mohou
nabývat hodnotu True
nebo False
. V podmínkách se používají logické
operátory porovnání
<
menší než>
větší než<=
menší nebo rovno než>=
větší nebo rovno než==
rovná se!=
nerovná se
Podmínky můžeš kombinovat pomocí logických spojek and
a or
,
případně použít slovíčko not
pro negaci. Přítomnost položky v
některém z výčtových typů můžeš zjistit slovíčkem in
.
if podminka1:
# pokud platí první podmínka
elif podminka2:
# pokud platí druhá podmínka
else:
# pokud neplatí ani jedna podmínka
Cykly
Často budeš chtít opakovat nějakou činnost pro každou položku ze seznamu
for polozka in seznam:
if slovnik[polozka] < 1:
print("Kup prosim {}".format(polozka))
Nebo dokud platí nějaká podmínka
while len(seznam) != 0:
seznam.pop()
Funkce
Funkce je pojmenovaný kousek kódů, který můžeš opakovaně použít. Funkce přijímají vstupní parametry a po provedení požadované operace vracejí výstup. Takto může vypadat funkce pro výpočet N-tého členu Fibonacciho posloupnosti.
def fibonacci(n): # definice funkce
"""Fibonacciho posloupnost""" # dokumentace
if n < 0: # při nesmyslném vstupu
return None # vrátí nijakou hodnotu
a, b = 0, 1 # první dva členy posloupnosti
for i in range(n): # pro i z rozsahu n
a, b = b, a+b # výpočet dalšího členu
return a # vrácení konečné hodnoty
Použití vlastní funkce je stejné jako všech ostatních
>>> fibonacci(10)
Mnoho užitečných matematických funkcí nalezneš taky v modulu math
.