Warning
This page is located in archive. Go to the latest version of this course pages. Go the latest version of this page.

Ú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