SPJA, cvičení 1. ipython, python, skripty. základy syntaxe: základní datové typy, řetězce. podmínky: if-elif-else, vyhodnocení logických výrazů

Podobné dokumenty
Funkce, podmíněný příkaz if-else, příkaz cyklu for

Programování v Pythonu

EVROPSKÝ SOCIÁLNÍ FOND. Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

Výrazy a operátory. Operátory Unární - unární a unární + Např.: a +b

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

Algoritmizace a programování

Konečný automat. Jan Kybic.

Programovací jazyk Pascal

ŘÍDÍCÍ STRUKTURY - PODMÍNKY

Logické operace. Datový typ bool. Relační operátory. Logické operátory. IAJCE Přednáška č. 3. může nabýt hodnot: o true o false

Jazyk C# a platforma.net

Skripty - úvod. Linux - skripty 2

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7

DSL manuál. Ing. Jan Hranáč. 27. října V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v

Programování v Pythonu

PHP - úvod. Kapitola seznamuje se základy jazyka PHP a jeho začleněním do HTML stránky.

Proměnná. Datový typ. IAJCE Cvičení č. 3. Pojmenované místo v paměti sloužící pro uložení hodnoty.

Přednáška 7. Celočíselná aritmetika. Návratový kód. Příkazy pro větvení výpočtu. Cykly. Předčasné ukončení cyklu.

Programování v jazyce JavaScript

Chyby a výjimky. Chyba. Odkud se chyby berou? Kdo chyby opravuje? Co můžete dělat jako programátor? Dvě hlavní metody práce s chybami.

Úvod do programovacích jazyků (Java)

6. Příkazy a řídící struktury v Javě

IB111 Základy programování Radek Pelánek

MAXScript výukový kurz

Sekvenční a podmíněné provádění

Pole / Arrays. Jan Kybic.

1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5

Programování: základní konstrukce, příklady, aplikace. IB111 Programování a algoritmizace

IB111 Úvod do programování skrze Python Přednáška 7

Úvod do jazyka C. Ing. Jan Fikejz (KST, FEI) Fakulta elektrotechniky a informatiky Katedra softwarových technologií

Algoritmizace a programování

VY_32_INOVACE_08_2_04_PR

První kapitola úvod do problematiky

Řídicí struktury. alg3 1

Kurz LSL skriptování. Shiny Iceberg 2009

Programování v Pythonu

Základy PERLu snadno a rychle

WSH Windows Script Hosting. OSY 2 Přednáška číslo 2 opravená verze z

JAVA. Další jazyky kompilovatelné do Java byte-code

Databázové systémy. - SQL * definice dat * aktualizace * pohledy. Tomáš Skopal

Operační systémy. Cvičení 4: Programování v C pod Unixem

A7B38UOS Úvod do operačních systémů. 6. Cvičení. Příkazy sed a awk

Lekce 4. Kolekce. Kolekce - seznamy, N-tice a slovníky. C2184 Úvod do programování v Pythonu podzim 2016

Maturitní otázky z předmětu PROGRAMOVÁNÍ

5a. Makra Visual Basic pro Microsoft Escel. Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Kalina

Základy algoritmizace 2. Proměnné, datové typy

Sada 1 - PHP. 03. Proměnné, konstanty

Zápis programu v jazyce C#

Příklad : String txt1 = new String( Ahoj vsichni! ); //vytvoří instanci třídy String a přiřadí ji vnitřní hodnotu Ahoj vsichni!

Programování v C++, 2. cvičení

9. přednáška - třídy, objekty

5 Přehled operátorů, příkazy, přetypování

MS Excel Základy maker. Operační program Vzdělávání pro konkurenceschopnost. Projekt Zvyšování IT gramotnosti zaměstnanců vybraných fakult MU

Skripta ke školení. Základy VBA. vypracoval: Tomáš Herout. tel:

3. Řízení běhu programu

Poslední nenulová číslice faktoriálu

Sada 1 - Základy programování

Stručný návod k programu Octave

4a. Makra Visual Basic pro Microsoft Excel Cyklické odkazy a iterace Makra funkce a metody

Programování v jazyce JavaScript

Tematický celek Proměnné. Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace Deklarace proměnných

8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek

DUM 07 téma: Proměnné, konstanty a pohyb po buňkách ve VBA

C2110 Operační systém UNIX a základy programování

Šablonovací systém htmltmpl vypracoval: Michal Vajbar, Šablonovací systém htmltmpl

cyklus s daným počtem opakování cyklus s podmínkou na začátku (cyklus bez udání počtu opakování)

Python profesionálně: dynamické parametry, generátory, lambda funkce... with. Dynamické parametry

Lekce 2. Řetězce a práce s nimi. Vstup a výstup. C2184 Úvod do programování v Pythonu podzim 2016

VISUAL BASIC. Práce se soubory

Obsah přednášky. programovacího jazyka. Motivace. Princip denotační sémantiky Sémantické funkce Výrazy Příkazy Vstup a výstup Kontinuace Program

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Program převod z desítkové na dvojkovou soustavu: /* Prevod desitkove na binarni */ #include <stdio.h>

Obsah. Úvod 11 Základy programování 11 Objektový přístup 11 Procvičování 11 Zvláštní odstavce 12 Zpětná vazba od čtenářů 12 Errata 13

Martin Hejtmánek hejtmmar

Úvod do programovacích jazyků (Java)

for (i = 0, j = 5; i < 10; i++) { // tělo cyklu }

Skripty základy VB, vestavěné objekty, příklady

Algoritmizace a programování

Paměť počítače. alg2 1

LEKCE 6. Operátory. V této lekci najdete:

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

PROGRAMOVÁNÍ V SHELLU

- znakové konstanty v apostrofech, např. a, +, (znak mezera) - proměnná zabírá 1 byte, obsahuje kód příslušného znaku

Algoritmizace a programování

Booleovská algebra. Pravdivostní tabulka. Karnaughova mapa. Booleovské n-krychle. Základní zákony. Unární a binární funkce. Podmínky.

NPRG030 Programování I, 2010/11

Spojový seznam. Jan Kybic.

Basic256 - úvod do programování Příklady. ing. petr polách

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace

IB015 Neimperativní programování. Seznamy, Typy a Rekurze. Jiří Barnat Libor Škarvada

3. přednáška. Obsah: Řídící struktury sekvence, if-else, switch, for, while, do-while. Zpracování posloupnosti

NPRG030 Programování I, 2016/17 1 / :58:13

Programování v Pythonu

Kolekce, cyklus foreach

PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1

Každý datový objekt Pythonu má minimáln ti vlastnosti. Identitu, datový typ a hodnotu.

Přednáška 4. Regulární výrazy. Filtry grep, sed a awk. Úvod do Operačních Systémů Přednáška 4

Algoritmizace prostorových úloh

Transkript:

SPJA, cvičení 1 ipython, python, skripty základy syntaxe: základní datové typy, řetězce podmínky: if-elif-else, vyhodnocení logických výrazů cykly: for, while kolekce: seznam, n-tice, slovník funkce, list comprehension

ipython, python, vytvoření skriptu Interaktivní mód: ipython: Applications > Accessories > Terminal v terminálu: python: ipython Applications > Accessories > Terminal v terminálu: python Vytvoření skriptu: editor gedit: nový soubor, uložit jako my_script.py

ipython, python, vytvoření skriptu Spuštění skriptu: ipython: spusťte ipython v terminálu v ipythonu: %run my_script.py python: v terminálu: python my_script.py argument1, argument2,...

syntax - typy python je dynamicky typovaný jazyk typ nemá proměnná, ale hodnota na kterou ukazuje. vytvoření proměnné: přiřazením hodnoty do proměnné >>> x = 3.14 # proměnná x má hodnotu 3.14 typu float >>> x # vypíše proměnnou x 3.14 >>> x = "Hello" # proměnná x má hodnotu "Hello" typu string >>> x 'Hello' zjištění typu proměnné: funkce type(x). (více o typu proměnné viz porovnání typů) >>> x = 3 ; type(x) <type 'int'>

syntax - typy základní typy: číselné - int, float, complex: >>> x=3 # integer >>> x=3.0 # float >>> x=3.0+0.0j # complex řetězec - str: v dvojitých/jednoduchých uvozovkách, uvozovky v uvozovkách: >>> x="hello world" ; y='hello world' ; x == y True >>> x="i said 'no penguins'" ; y='i said \'no penguins\'' ; x==y True >>> x="i said \"no penguins\"" ; y='i said "no penguins"' ; x==y True unicode, raw >>> x=u"string with unicode characters" >>> x=r"raw string treats \n escape sequences differently" ; x 'raw string treats \\n escape sequences differently'

syntax - typy kolekce: seznam (list): >>> x = [1,2,3] >>> x [1,2,3] n-tice (tuple): >>> x = (1,2,3) >>> x (1,2,4) slovník (dict): >>> x = { "a" : 1, "b" : 2 } >>> x { 'a' : 1, 'b' : 2 }

výstup, formátovaný výstup výpis hodnoty proměnné: >>> x = 3.14 ; print x 3.14 >>> print "pi =", x pi = 3.14 >>> print "pi = " + x pi = 3.14 formátovaný výpis: >>> x = 3.1415 ; print "pi = %.2f" % x pi = 3.14 >>> print "%s = %d" % ( "x", 4 ) x = 4

výstup, formátovaný výstup >>> print "{0} = {1}".format( "x", 4 ) x = 4 >>> print "{name} = {value}".format( name="x", value=4 ) x = 4

řídící struktury if-elif-else : if <podmínka> : <blok> elif <podmínka> : <blok> elif <podmínka> : <blok>... else: <blok> >>> x = 4 >>> if x == 4:... print "x je čtyři"... x += 1... x je čtyři >>> if x == 5:... print "x je teď 5"... elif x == 4:... print "x je stále čtyři"... else:... print "něco úplně jiného" x je teď 5

řídící struktury Blok příkazů: definován odsazením. Standardně se používají čtyři mezery pro jednu úroveň odsazení (jeden tabelátor, počet mezer lze nastavit v nastavení editoru) Příkazy na jedné úrovni odsazení tvoří jeden blok, dokud není úroveň odsazení snížena Příkazy s větším odsazením tvoří vnořený blok >>> x = 4; y = 3 >>> if x == 4:... x += 1... if y == 3:... y += 1... >>> print x,y 5 4 blok vnořený blok ekvivalent v C: int x = 4, y = 3; if ( x == 4 ) { x += 1; if ( y == 3 ) { y += 1; } }

řídící struktury while cyklus s podmínkou na začátku >>> n = 10 >>> while n >= 0:... print 'ahoj'... n -= 1 for : podobný foreach cyklu z jiných jazyků. Pro všechny prvky v kolekci proveď blok příkazů >>> s = 0 >>> for x in [1,2,3]:... s += x... >>> print s 6

řídící struktury funkce enumerate() "očísluje" prvky kolekce: >>> for i,x in enumerate(["a","b","c"]):... print i,x... 0 a 1 b 2 c funkce range(): range(do), range(od, do), range(od,do,krok) >>> for x in range(3):... print x... 0 1 2 >>> for x in range(1,6,2):... print x... 1 3 5

vyhodnocení logických výrazů, None None: proměnná "bez hodnoty": >>> x = None >>> x # žádný výstup se nezobrazí >>> print x None False, True: booleovské hodnoty. následující výrazy se vyhodnotí v podmínce jako nepravda: False, 0, None, [], (), {} (singleton False, číselná nula, None, prázdný seznam, n-tice, slovník) pravda: True, nenulová hodnota, neprázdné kolekce

identita a porovnání Operátory porovnání: <, >, <=, <=, ==, is, is not >>> if x is not None:... print "x není prázdné"... x není prázdné Logické spojky: and, or, not >>> if not (( a == b ) or ( a == c )):... print 'a není rovno b ani c'... a není rovno b ani c Je prvek v kolekci?: in, not in >>> print 'a' in [ 'a', 'b', 'c' ] True >>> print 'd' in ( 'a', 'b', 'c' ) False >>> print 'key1' in { 'key1' : 'value1', 'key2' : 'value2' } True

Sekvence, řetězce, kolekce Kolekce: seznam, n-tice, slovník Sekvence: seznam (list), n-tice (tuple), řetězec (string, str) (sekvence znaků) všechny lze stejným způsobem procházet cyklem for, "očíslovat" / získat pořadí prvků funkcí enumerate (viz popis cyklu for) iterable lze přistupovat k prvkům: s[index], s[-index] : záporné číslo znamená od konce >>> "hello"[-1] 'o' lze přistupovat k podsekvencím - slicing: s[od:], s[od:do], [:do], [od:do:krok] s[1:] : od prvku na pozici 1 (včetně) do konce s[:3] : od začátku do prvku na pozici dva (tzn. do poz. 3 "bez") s[::-1] : celý řetězec pozpátku >>> "hello"[:-2] + "world"[-2::-1] "hellrow" lze spojovat operátorem +: >>> s = (1,2,3) + (4,5,6) ; s (1,2,3,4,5,6)

Sekvence, řetězce, kolekce n-tice a řetězec se chovají podobně jsou neměnné sekvence (immutable) : nelze do nich vkládat, mazat, přiřazovat na pozici do jednotlivých prvků >>> s=(1,2,3) ; s[0] = 0 TypeError: 'tuple' object does not support item assignment do seznamu lze přidávat prvky, odstraňovat, přiřadit (změnit prvek) na pozici: změna prvku: >>> lst = [1,2,3] ; lst[1] = 0 ; print lst [1,0,3] změna podsekvence: >>> lst = [1,2,3,4,5] ; lst[1:4] = [0] ; print lst [1,0,5] vložení na konec: >>> lst.append(4) ; lst [1,0,3,4] odstranění: (první odp. prvek) >>> lst = [1,0,2,0,3] ; lst.remove(0) ; lst [1,2,0,3]

Sekvence, řetězce, kolekce slovník: mapuje klíč na hodnotu. Klíčem může být číslo, řetězec, n-tice, avšak ne například seznam: >>> d = { (1,2) : 'raz-dva', (3,4) : 'tri-ctyri' } není seřazený lze ho procházet for cyklem: >>> for k in d:... print "klic :", k, "hodnota :", d[k]... klic : (1, 2) hodnota : raz-dva klic : (3, 4) hodnota : tri-ctyri přístup k hodnotě prvku přes klíč: >>> print d['klic'] vložení: >>> d['klic'] = 'hodnota' odebrání: >>> if 'klic' in d:... del d['klic']... else:... print "pozdě!"

Funkce, list comprehension Definice funkce: def my_func(my_arg): <block of commands> list comprehension: výraz, pracuje se seznamem, výsledkem je nový seznam umožňuje: filtrovat seznam: >>> lst = [1,2,3,4,5,6] ; lst2 = [ x for x in lst if x < 4 ] ; lst2 [1,2,3] provést operaci pro každý prvek seznamu: >>> lst = [1,2,3,4,5,6] ; lst2 = [ x * 2 for x in lst ] ; lst2 [2, 4, 6, 8, 10, 12] kombinaci obojího provést operaci jen, pokud prvek splňuje podmínku: >>> lst = [1,2,3,4,5,6] ; lst2 = [ x * 2 for x in lst if x % 2 == 0 ] ; lst2 [4, 8, 12]