Proměnné, fukce a typy = není “rovná se” = reprezentuje přiřazení, kde a je proměnná Abstrakce pomocí proměnných Proměnnou můžeme použít místo hodnoty Existují různé typy objektů a nechovají se stejně Funkce type vypíše typ objektu Operátory v Pythonu Různé typy se chovají různě Vyzkoušejme sčítání pro tyto věci: Změna typu je občas možná Někdy je změna implicitní: Cvičení 1. Zjistěte jaký typ mají následující objekty: Cvičení 2. Ověřte jak se chovají operátory +, -, *, / pro dvojce těchto typů: ➔ str a str ➔ list a list ➔ int a list ➔ int a str ➔ str a int Nápověda: ➔ str je text (string), např. “text” ➔ list je seznam, např. [1, 2 , 3] ➔ int je celé číslo (integer), např. 12 Rekapitulace Zatím víme, že: ➔ Proměnná (a, cele_cislo, …) ➔ Hodnota (12, “text”, …) ➔ Operátory (+, -, …) ➔ Příkazy (a = 12) Co jsou ale print(), type(), int(), … čili věci se závorkami? Funkce -> více abstrakce Nezapomeňte na : a intendovaný blok jinak dostanete SyntaxError. To co do funkce dáváme (x v definici) se jmenuje argument (parametr) funkce. Funkce s více argumenty a vrácením hodnoty Cvičení 3. Napište funkci která: ➔ Vypíše argument a jeho typ ➔ Přičte jedničku k argumentu a vrátí jeho hodnotu Funkce bez vrácení hodnoty Když vynecháte return, je to stejné jako kdybyste napsali return None: Co je to None None je definované jako nulová hodnota, nebo žádná hodnota. None je stejný jako 0, False nebo prázdný string. None je svůj vlastný typ (NoneType) a jenom None může být None Kompozice Funkce je možné skládat: Parametry funkce jsou lokální proměnné Parameter a ve funkci zakryje globální proměnnou a. Parametry funkce jsou lokální proměnné, ale … Parametry funkce jsou lokální proměnné, ale … Toto neudělá co si nejspíš myslíte: Je funkce objekt? (Můžeme ji přiřadit do proměnné?) Pozor na závorky! Funkce jako argument funkce Cvičení 4. ➔ Vytvořte funkci, která vezme jeden argument - jinou funkci a zavolá ji dvakrát ➔ Otestujte vaši funkci Metoda - funkce trochu jinak V objektově-orientovaných jazycích jsou funkce často přímo napojené na objekty. Metoda - funkce trochu jinak V objektově-orientovaných jazycích jsou funkce často přímo napojené na objekty. ➔ upper je metoda pro str ➔ obj.x je syntax který znamená “x v obj” ➔ metodu můžeme chápat jako funkci, která dostane jako první argument objekt, ze kterého je volána Nebudeme si všechno programovat -> import Cvičení 5. Napište funkci, která přepočítá úhel ve stupních na radiány a funkci inverzní. Číslo π najdete v knihovně math: Cvičení 6. Napište funkci, která použije 1 argument a spočítá obvod a obsah kruhu, kde zadaný argument poslouží jako poloměr: