3. cvičení

  • Funkce
  • Cykly

Python: 1. úloha

Zadání

Vytvoř v IDE Thonny nový soubor, ulož ho na "Plochu" pod jménem ZPD1t03pi.py a napiš do něj následující příkazy:

Použijte Thonny IDE.

Řešení


Výstup po spuštění v Thonny IDE



Výrazy

2 + 4 a + b
2 * 4 2 / 4
x * x x <= y
sin 0 cos 0
2 == 2 2 != 2
2 < 7, 2 >7 1 <= 7, 1>=7 

V Pythonu máme následující operátory: == != < > <= >= | ^ & << >> + - * @ / // % ~ ** [ ] ( ) { } . lambda if else or and not in not in is is not

Funkce

Následující matematický zápis "x = sin a" zapíšeme v Pythonu x = sin(a)


Argumenty

print(2, 4, 6)

print(2, 4, 6)

print("Dva plus tři je", 2 + 3)

Volání funkcí

from math import sin, pi

print(sin(90 * (pi / 180)))

Pojmenované argumenty

print('2 + 3', end=' ')

print('=', end=' ')

print(2 + 3, end='!')

print()

Užitečné funkce

print(1, "jedna", True)

print(1, end=" ")

print(2, 3, 4, sep=", ")

input('Zadej vstup: ')

Převádění typů

int(x) # převod na celé číslo

float(x) # převod na "desetinné" číslo

str(x) # převod na řetězec

Příklady

1 == int('1') == int(1.0) == int(1.232) == int(1)

2.25 == float('2.25') == float(2.25)

3.0 == float(3) == float('3') == float(3.0)

'3' == str(3) == str('3')

'4.256' == str(4.256) == str('4.256')

Časté chyby

int('ahoj') # špatně

float('ahoj') # špatně

int('3.14') # špatně

Matematické funkce

round(číslo) # zaokrouhlení

from math import sin, cos, tan, sqrt, floor, ceil

sin(úhel) # sinus

cos(úhel) # kosinus

tan(úhel) # tangens

sqrt(číslo) # druhá odmocnina

floor(číslo) # zaokrouhlení dolů

ceil(číslo) # zaokrouhlení nahoru

Nápověda

import math

help(math)

help(print)

Náhodné číslo

from random import randrange, uniform

randrange(a, b) # náhodné celé číslo od a do b-1

uniform(a, b) # náhodné "desetinné" číslo od a do b

Python: 2. úloha

Zadání

Vytvoř v IDE Thonny nový program, ve kterém použijete funkci x = sin(a). Program ulož na "Plochu" pod jménem ZDP1t03sin.py.

Použijte Thonny IDE.

Řešení


Výstup po spuštění v Thonny IDE


Spuštění v příkazové řádce


Zdrojový kód

ZPD1t03sin.py


Cykly - příkaz for

Příkaz for opakuje část programu. Opakují se příkazy, které jsou pod příkazem for odsazené.

Příkaz for x in range(n): opakuje příkazy pod ním n-krát a proměnnou x nastaví postupně na čísla od 0 do n-1.

Příkaz for x in a, b, c, d, ...: opakuje příkazy pod ním; proměnnou x nastavuje postupně na a, b, c d, ...


Motivační příklad - for cyklus (Zkuste si před  print(j * i, end=' ') přidat breakpoint)

Díky příkazu break vyskočíme z vnitřního cyklu.

Cyklus while

Příkaz break se dá použít jenom v cyklu (while nebo for) a pokud máme víc cyklů zanořených v sobě, vyskočí jen z toho vnitřního.


Samostatná práce

1) Vytvořte program, který načte z klávesnice tři celá čísla a vypočte jejich aritmetický průměr.

2) Vytvořte program, který načte z klávesnice dvě strany obdélníku a vypočte jeho úhlopříčku.

MicroPython: Motivační příklad

MicroPython je štíhlá a efektivní implementace programovacího jazyka Python 3, která obsahuje malou podmnožinu standardních Python knihoven a je optimalizována pro provoz na mikrokontrolérech.

My si vyzkoušíme pracovat s mikrokontrolerem ESP8266


Stáhněte si uPyCraft: Windows PC: zde

Stáhněte si ovladač rpo komunikaci s mikrokontrolerem: zde

Nastavení uPyCraft IDE:

1) Tools -> Serial -> COM5


2) Tools -> board -> ESP8266


Zadání

Vytvořte soubor micropython.py a postupujte podle pokynů cvičícího. Nakonec v IDE uPyCraft otevři soubor -> DownloadAndRun

Řešení



Studijní materiály

Heineman G., Pollice G., Selkow S., Algorithms in a Nutshell , O'Reilly, USA 2008

Lutz, Mark, Learning Python , Sebastopol : O'Reilly 2009

Pilgrim, Mark, Ponořme se do Python(u) 3 , Edice CZ.NIC 2010

Beazley, David M.; Jones, Brian K., Python cookbook , Sebastopol : O'Reilly 2013

Summerfield, Mark, Python 3 : výukový kurz , Brno : Computer Press 2010

Pokud se zajímáte o Python více napište mi na email níže :)

Něco málo o mě

Jsem správcem neuroinformatické laboratoře na Západočeské univerzitě na Katedře informatiky a inženýrství. V rámci ZČU jsem pracoval na několika projektech (sémantický web v EEG / ERP portálu, OEN ontologie, vývojová koordinační porucha u dětí, kontrola pozornosti řidiče, analýza EEG u myší, asistenční systém řízený mozkovými vlnami pro osoby se sníženou pohyblivostí, BodyInNumbers).

Kontakt

Ing. Petr Brůha
Technická 8,
Plzeň, 30100, Česká republika
E: pbruha@kiv.zcu.cz
P: +420 377 63 2412
M: UN 324

Konzultační hodiny

Budova FAV, sekce NTIS, kancelář UN324

St: 13:00-13:55

Pá: 10:00-11:00