Warning
This page is located in archive.

Úvodní cvičení ze základů programování

Python je interpretovaný vysokoúrovňový programovací jazyk vytvořený v roce 1991.
Instalaci pythonu je možné stáhnout na stránce, aktuální nejnovější verze je Python 3.9.7 (psáno 11.9.2021).

Pro spuštění příkazového okna (interaktivního režimu, interpreteru) jazyku python stačí v příkazové řádce (např. cmd ve windows) zavolat příkaz python (eventuelně python3 pro spuštění verze 3 v případě více nainstalovaných verzí jazyka python).

Pro psaní skriptů je možné použít jakýkoli textový editor a daný příkaz či jejich posloupnost uložit do textového soubour (doporučená přípona py). Interpretace příkazů je pak možné provést z příkazové řádky pomocí python nazev.py

Intalace Pythonu v sobě obsahuje jednoduchý editor spolu s příkazovým oknem (command window) zvaný Idle

Dále je možné pracovat v celé řadě vývojových prostředí, například v profesionálním PyCharm jehož instalace je pro studenty ČVUT dostupná zdarma na tomto odkazu.

Jako alternativa k instalci Pythonu a hledaní vývojového prostředí je možné nainstalovat platformu Anaconda jejíž součástí je vývojové prostředí Spyder. Pokud nechcete instalovat celou platformu Anaconda, je možné nainstalovat její minimální varinatu zvanou Miniconda a později doinstalovat potřebné knihovny či vývojové prostředí Spyder.

Interaktivní variantu příkazového okna (interpreteru) nabízí Interactive Python - IPython (web, dokumentace)

  • paralelní a distrubované výpočty
  • současně plní roli příkazové řádky počítače
  • pomocí 'magických' příkazů volaných pomocí symbolu % nebo %% umožňuje uložit, editovat, spustit skript (program)

Po vzoru programů Mathematica či Maple, které mají prostředí ve stylu notebooku, kde jednotlivé výpočty uživatel provádí v buňkách, byl v roce 2011 vytvořen IPython notebook nabízející prostředí integrované do webového prohlížeče.

V roce 2014 vzešel z IPython nooteboku projekt Jupyter (web), který představuje prostředí umožňující integrovat výpočty ve více programovacích jazycích. Název vychází ze tří jazyků: Julia, Python, a R.

V roce 2018 vznikl Jupterlab představující nové rozhraní (novou generaci) integrující v sobě Jupyter notebook. Jupyterlab v sobě lépe integruje potřebné nástroje pro vývoj: textový editor, příkazovou řádku, prohlížeč souborů, atd. Pro více informací je zde krátké video

Projekt Jupyter je vhodný zejména ve výuce a výzkumu. Interaktivnost notebooku spolu s možností připojit komentář (dokumentaci) umožňuje prezentovat a sdílet výsledky výzkumu s ostatními. Příklad notebooku je zde

Prostředí

Markdown (psaní komentářů/popisek v Jupyter notebooku)

Markdown je tzv. značkovácí (markup) jazyk, který slouží pro úpravu/formátování textu. Tato buňka, i buňky předcházející, obsahují Markdown.

Markdown umožňuje jednoduše formátovat text: tučný text, kurziva, odkaz

citace
  • list
  1. list

viz Syntax 1, Syntax 2

Python komentáře

# komentar na jednom radku
 
'''
vice radkovy komentar
vice radkovy komentar
vice radkovy komentar
'''

Základní proměnné

a = 5
b = 9
 
# součet dvou proměnných a zápis do nové proměnné
c = a + b

Pozor, Python rozlišuje mezi velkými a malými písmeny

c = A + b

V případě, že máte v kódu chybu Python vypíše tzv. traceback.

Proměnné nemusí být jen celá čísla

# desetinná čísla (float)
d = 0.75
 
# komplexní čísla
e = 1 + 2j
 
# text (string)
f = 'foo'
g = "foo"
 
# binární logická hodnota (True/False)
h = True

Explicitní deklarace/přetypování

a = int('4')
b = float(4)
c = str(4.0)
d = complex(2,5)
e = bool("false")

Zjištění typu proměnné

type(b)
 
# respektive print(type(b)), viz níže

Tisk na standardni vystup

# program vypise retezec Hello world na standardni vystup
print('Hello world!')

# Stejný výsledek i bez print
# POZOR - Toto lze jen díky IPythonu, standardní Python by skončíl chybou!
'Hello World!'

Práce s proměnnými

a = 5
b = a
 
print(a,b)

a = 5
b = a
a = 7
 
print(a,b)

a = b = c = 9
 
print(a,b,c)
 
a, b, c = 1, 2, 3
 
print(a,b,c)

a, b = 1,2
b, a = a, b
print(a,b)

Matematické operace

# Násobení
a*2
 
# Mocnina
a**2
 
# Dělení
a/2
 
# Celočíselné dělení
a//2
 
# Modulo (zbytek po dělení)
a%2

Úloha 1 - Pokud je proměnná a typ int, jaký typ bude mít proměnná b = a/2?

Deklarujte proměnnou a, vypočítejte/deklarujte proměnnou b a zjistěte typ proměnné b.

 

# Kombinace se zápisem do proměnné
 
a = 14
a += 1 # místo a = a+1
a /= 3
a %= 3
 
# Jaké číslo bude v proměnné a?

Operace s textem

a = 'nula'
b = "jedna"
c = a+b

# Můžeme sečíst číslo a text?
c = 5+a

# Můžeme vynásobit číslo a text?
c = 5*a

a = "Cvičení nás "strašně" baví!"
print(a)
 
# tzv. escape znaku
a = "Cvičení nás \"strašně\" baví!"
print(a)

Standardni vstup

jmeno = input('zadejte vase jmeno: ')
prijmeni = input('zadejte vase prijmeni: ')
vek = input('zadejte svuj vek: ')
 
print('Jmenuji se ',jmeno, ' ', prijmeni, 'a je mi ', vek, 'let.')

Výše uvedenou větu můžeme vypsat i jinak:

print('Jmenuji se %s %s a je mi %s let.' % (jmeno, prijmeni, vek))
 
print(f'Jmenuji se {jmeno} {prijmeni} a je mi {vek} let.')
 
print('Jmenuji se {0:s} {1:s} a je mi {2:s} let.'.format(jmeno, prijmeni, vek))

Úloha 2 - Napište kolik Vám bude za dva roky

Použijte proměnnou vek. Zamyslete se nad postupem.

budouci_vek = 
print('Za dva roky mi bude {0:d}.'.format(budouci_vek))

Standardni výstup - pokročilé formátování

x = 3.14159265

\u03C0 je Unicode znak pro $\pi$

print('\u03C0 = ',x)

Vyzkoušejte a zkuste pochopit jak fungují jednotlivé formátovací možnosti

print('\u03C0 = %s' % x)

print('\u03C0 = %d' % x)

print('\u03C0 = %.3d' % x)

print('\u03C0 = %.3f' % x)

print(f'\u03C0 = {x}')

print('\u03C0 = {0:.3f}'.format(x))

Úloha 3 - výpočet přepony pravoúhlého trojúhelníku

Nechte uživatele zapsat délky odvěsen (standardni vstup). Vypočtěte přeponu, výsledek zapište do nové proměnné a pomocí funkce pro standardní výstup vypište výsledek. Odmocninu můžete vypočítat pomocí mocniny.

 

Formátování textu

# Nový řádek
print('prvni radek\ndruhy radek')

# Tabulator
 
print('list:\n\tovoce\n\tzelenina')

Jak se zbavit přebytečných znaků

Co když uživatel omylem zadá omylem mezeru (nebo nějaký jiný znak) před/za svůj věk?

Použití metod .rstrip, .lstrip, .strip

vek = '*90 '
budouci_vek = 
 
print(f'Uzivateli je {vek} let a za rok mu bude {budouci_vek}.')

Centrování/zarovnání řetězce s pomocí vyplňovacího znaku

Použití metod .rjust, .ljust, .center

Použijte libovolnou metodu pro centrování/zarovnání s libovolným vyplňovacím znakem tak, aby byla výsledná délka řetezce 30 znaků. Ověřte.

test_string = 'Konec cviceni'
 
# funkce len() složí pro výpočet délky/počtu znaků proměnné
print(len(test_string))

Úlohy na doma

  • Instalace Pythonu na domácí počítač
  • Instalace VS Code a potřebných rozšíření (Python, Jupyter), případně vhodného IDE pro práci s Pythonem
  • Zkuste si otevřít Jupyter notebook pro první cvičení a ověřte, že vše funguje tak jak má
  • Zkuste si otevřít Python z příkazové řádky (ověřte nějaké základní matematické operace)
courses/bab37zpr/tutorials/lab01.txt · Last modified: 2022/09/10 11:01 by zizieada