Ťahák - Základy jazyka Python

Podobné dokumenty
ALGORITMY A PROGRAMOVANIE VO VÝVOJOVOM PROSTREDÍ LAZARUS. Vývojové prostredie Lazarus, prvý program

Príklad ponuky: Riešenie: vrch. hodnota 3 hodnota 2 hodnota 1

Import cenových akcií FRESH

Predaj cez PC pokladňu

Hromadná korešpondencia v programe Word Lektor: Ing. Jaroslav Mišovych

KOMISNÝ PREDAJ. Obr. 1

VECIT 2006 Tento materiál vznikol v rámci projektu, ktorý je spolufinancovaný Európskou úniou. 1/4

Polia a matice v jazyku C. Michal Kvasnica

Vytvorenie používateľov a nastavenie prístupov

P R O L U C. POZNÁMKY individuálnej účtovnej závierky pre rok 2014

Modul PROLUC Podvojné účtovníctvo

MATLAB (1) - úvod do programovania vedeckých problémov. LS 2017, 8.predn.

Programovanie v jazyku C - pole treba poorat...

DOBROPISY. Dobropisy je potrebné rozlišovať podľa základného rozlíšenia: 1. dodavateľské 2. odberateľské

Program "Inventúra program.xlsm"

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ů

Import Excel Univerzál

Skákalka. Otvoríme si program Zoner Callisto, cesta je Programy Aplikácie Grafika Zoner Callisto.

Pracovné prostredie MS EXCEL 2003.

P R O L E M FAKTURA Z VYDAJA OBSAH. Vystavenie faktúry z výdaja postup, podmienky... 2

KEO - Register obyvateľov Prevod údajov

Microsoft POWERPOINT XP

Manuál na prácu s databázou zmlúv, faktúr a objednávok Mesta Martin.

CM WiFi-Box. Technické inštrukcie. (pre kotly PelTec/PelTec-lambda) VYKUROVACIA TECHNIKA. Domáci wifi router.

Total Commander. Základné nastavenia

Postup pre firmy s licenciou Profesionál účtovná firma

PALMA junior programovanie v Imagine Univerzita Pavla Jozefa Šafárika v Košiciach Prírodovedecká fakulta Ústav informatiky

15. Príkazy vetvenia

Postup pri aktivácii elektronickej schránky na doručovanie pre fyzické osoby

INTERNET BANKING. Platby cez Internet banking VŠETKO, ČO JE MOŽNÉ. with.vub.sk, Bank of

ZRÝCHLENÝ PREDAJ (AJ CEZ DOTYKOVÚ OBRAZOVKU)

Pripojenie na internet cez WiFi pre zamestnancov a študentov

Úroveň strojového kódu procesor Intel Pentium. Adresovanie pamäte

UŽÍVATEĽSKÁ PRÍRUČKA. TCP Optimizátor

1. Formát exportov typu *.gpc (ABO)

Textový editor WORD. Práca s obrázkami a automatickými tvarmi vo Worde

# vstup sa konvertuje na celé číslo a uloží do premennej

Užívateľská príručka. Vytvorte 1 medzi stránkami v niekoľkých jednoduchých krokoch

Imagine. Popis prostredia:

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

Program pre prípravu hromadných príkazov na import do e-banky Prima banka Slovensko, a.s. (ďalej len Prima banka ) Užívateľská príručka

Postup a podmienky spracovania výkazov INTRASTAT. Evidencia dod. faktúry podklady pre výkaz PRIJATIE TOVARU

Základy algoritmizácie a programovania

PODPROGRAMY. Vyčlenenie podprogramu a jeho pomenovanie robíme v deklarácii programu a aktiváciu vykonáme volaním podprogramu.

UČEBNÉ OSNOVY do ŠkVP

Návod na použite plaftormy ELMARK E- Business obsahuje popis hlavných možností a funkcií programu. Príručka je štruktúrovaná podľa poradia možností.

Užívateľský manuál Technický server SKGA ročná kontrola HCP

Návod k servisnému programu pre fiskálny modul FM2000. manuál. (c)varos

Elektronická značka je k dispozícii na stránke etax v záložke Úvod, položka menu Správa Certifikátov.

Informácia k odoslaniu Hlásenia DEV-MES(NBS)1-12 cez informačný systém Štatistický zberový portál

Optimik Exporter Inštalácia 1. Otvoriť stránku nabytok.com, v záložke POREZ DTD kliknúť na Stiahnuť Optimik Exporter

ActionScript3 Načítavanie externého textu do dynamického textového poľa, vertikálne rolovanie textu dynamického textového poľa

Elektronické odosielanie výplatných pások

Strojový kód, assembler, emulátor počítača

Užívateľská príručka systému CEHZ. Základné zostavy Farmy podľa druhu činnosti

Ak stlačíme OK, prebehne výpočet a v bunke B1 je výsledok.

MAIS. Verejný portál - kalendárny rozvrh. Používateľská minipríručka pre používateľov systému MAIS. APZ Bratislava

MS PowerPoint - Úvod.

Studentove t-testy. Metódy riešenia matematických úloh

Automatické pohony na brány

NA POUŽITIE ŠABLÓNY PRE PÍSANIE ZÁVEREČNEJ PRÁCE

OBOZNÁMTE SA S VAŠÍM TELEFÓNOM

STRUČNÝ NÁVOD KU IP-COACHU

Microsoft Excel. 1. titulná lišta

eformulár ČSOB Leasing užívateľský manuál verzia 1.0

Manuál pre používanie programu KonverziaXML_D134

Používateľská príručka pre autorov Prihlásenie

Užívateľská príručka Hospodársky register

POSTUP GENEROVANIA ŽIADOSTI O KVALIFIKOVANÝ CERTIFIKÁT POMOCOU PROGRAMU COMFORTCHIP.

Moderné vzdelávanie pre vedomostnú spoločnosť/projekt je spolufinancovaný zo zdrojov EÚ. Grafy

Návod na udelenie oprávnenia na prístup a disponovanie s elektronickou schránkou a jeho zneplatnenie

SKLADOVÁ INVENTÚRA 1 VYTVORENIE INVENTÚRY. 1.1 Nastavenie skladovej inventúry

Stručný návod na inštaláciu Wi-Fi routra pre T-Mobile mobilný internet

2 Postup zadávania výkazov FVV_PaZ, FVV_NaV, TRANS

UKÁŽKOVÝ PRIEBEH TESTOVANIA - DEMO-TEST

Dealer Extranet 3. Cenové ponuky

Inventúra účtov- základný popis.

GPS KATASTER základné inštrukcie:

Jún ver aktualizácia textu: 10. júna 2016

Používateľská príručka pre autorov

Formulár Oznámenie funkcií, zamestnaní, činností a majetkových pomerov verejných funkcionárov

Kajot Casino Ltd. Popis hry Classic 7

Microsoft Project CVIČENIE 6 1

STRUČNÝ NÁVOD NA OBSLUHU DATALOGERA KIMO KT110 / 150

Užívateľská príručka k funkcii Zastavenie a pretočenie obrazu

OBOZNÁMTE SA S VAŠÍM TELEFÓNOM

TomTom Referenčná príručka

Príručka Mobility Tool + pre príjemcov grantu

Spracovanie informácií

Používateľská príručka: MOODLE

RIEŠENIE NIEKTORÝCH ÚLOH LINEÁRNEJ ALGEBRY V PROSTREDÍ MS EXCEL. 1. Zadáme prvky matice A a B do buniek pracovného hárku zošita MS Excel

Vážení používatelia programu WISP.

Manuál Generovanie prístupových práv E-Recept

Návod na programovanie inteligentnej elektroinštalácie Ego-n

Konfigurácia IP Bell 02C Dverný vrátnik a FIBARO Home Center 2

Zvyškové triedy podľa modulu

Metóda vetiev a hraníc (Branch and Bound Method)

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

Multihosting Užívateľská príručka

Predloženie žiadosti o zápis športovej organizácie

Transkript:

Ťahák - Základy jazyka Python Jaroslav Výbošťok, v171017 V tomto ťaháku nájdete: Vstup a výstup, Cyklus FOR, IF, Cyklus s podmienkou, Náhodné hodnoty, Grafika, Funkcie, Udalosti myši/klávesnice, Komponenty Button a Entry, Zoznamy a stringy, Časovač (after), Manipulácia s grafickými útvarmi, Textové súbory, Lambda funkcie, Vstup a výstup: print('hello world!') #môj prvý program print() #zariadkuje, nezabudnúť zátvorky print('výpočet je', 3 + 4 * 5, 'cm',sep='',end='') Nepovinné parametre sep (znak oddeľujúci jednotlivé položky výpisu) a end (čo vypíše print na konci v tomto prípade nezariadkuje) slovo=input('zadaj slovo') x=int(input('zadaj číslo:')) input() #načítanie hodnoty typu string #bude sa čakať na stlačenie klávesu ENTER Typy hodnôt: int, float, str, bool Základné aritmetické operácie: // celočíselné delenie 22 // 7 má hodnotu 3 % zvyšok po delení 22 % 7 má hodnotu 1 ** umocňovanie 2 ** 8 má hodnotu 256 * viacnásobné zreťazenie 3 * 'la' má hodnotu 'lalala' premenná += hodnota pripočítaj hodnotu k premennej premenná *= hodnota vynásob premennú zadanou hodnotou premenná /= hodnota vydeľ premennú zadanou hodnotou premenná //= hodnota celočíselne vydeľ premennú zadanou hodnotou Cyklus FOR: for i in range(5,10): print(i) range(3,10) 3,4,5,6,7,8,9 range(3,10,2) 3,5,7,9 range(10,1,-1) 10,9,8,7,6,5,4,3,2 range(10,1) prázdna postupnosť range(1,1) prázdna postupnosť IF: if teplota >= 30: print('je nam teplo!') else: print('je nam zima!') if 100 > body >= 90: print('za', body, 'bodov získavaš jednotku') elif body >= 80: print('za', body, 'bodov získavaš dvojku') else: print('rachol si') OPERÁTORY A LOGICKÉ VÝRAZY: nerovná sa!= rovná sa == and, or, not x<10 and y<20 10<x<20 True, False #T a F sú VEĽKÉ PÍSMENÁ Ternárny operátor: print('kladne' if cislo>=0 else 'Zaporne')

CYKLUS S PODMIENKOU: pocet = 20 while pocet>15: pocet-=2 NÁHODNÉ HODNOTY modul random: from random import * cislo=randrange(100) #od 0 do 99 cislo=randrange(10,100) #od 10 do 99 cislo=randrange(10,100,5) #náhodne z 10,15,20...95 farba=choice(['green', 'red', 'blue'])#náhodný výber jednej z možností GRAFIKA modul tkinter from tkinter import * #pri takomto spôsobe importu netreba ďalej písať tkinter.canvas, ale iba Canvas g=canvas(bg='white',width=400,height=500) #nezabudnúť veľké C v Canvas g.pack() #zobrazí grafickú plochu g.create_line(200,200,300,300,fill='green',width=5) g.create_rectangle(10,20,200,300, fill='green',width=5,outline='red') g.create_oval(10,20,200,300, fill='green',width=5,outline='red') g.create_text(10,20,text='ahoj',anchor='nw',font='arial 20 bold') #pozri aj create_arc, create_polygon fotka=photoimage(file='lala.png') #iba pre GIF a PNG g.create_image(10,10,image=fotka,anchor='nw') #default anchor je center mainloop() #musí byť na konci programu, aby sa program okamžite nevypol FUNKCIE return vráti hodnotu a ukončí funkciu (ako v C) Vždy treba písať () - bez zátvoriek je to adresa funkcie (viď command pre button) def nazov(): print('tralala') return 10 #nezabudnúť zátvorky def sparametrami(px,py,farba='blue',farba2='red'): global x,y #premenné x,y v tejto funkcii budú globálne g.create_rectangle(px,py,px+10,py+10,fill=farba) x+=1 y+=5 #musia byť inicializované v hlavnom programe SPRACOVANIE UDALOSTÍ MYŠI def kliknutie(event): print(event.x,event.y) g.bind('<button-1>',kliknutie) #ľavé tlačidlo myši (2 stredné, 3 pravé) v parametri event budú automaticky uložené informácie o kliknutí napr. súradnice # '<Button-1>', '<ButtonPress-1>', a '<1>' je to isté #iné konštanty: '<B1-Motion>', '<ButtonRelease-1>', '<Double-Button-1>', '<Leave>', '<Motion>', '<Enter>', #Enter neznamená stlačenie enter

SPRACOVANIE UDALOSTÍ KLÁVESNICE def spracuj(event): print(event.char, event.keysym, event.keycode) g.bind('<key>',spracuj) #Reakcia na ľubovolný kláves POZOR: Canvas vie reagovať na stlačenie kláves, iba ak má nastavený FOCUS (ak je 'aktívny') pomocou funkcie g.focus_set() #Iné konštanty v '< >': Left, Down, Up, Return, Shift_l, F1,... alebo 'a' (znakový kláves a) a ďalšie znaky #Viac konštánt na http://effbot.org/tkinterbook/tkinter-events-and-bindings.htm Ďalšie komponenty modulu tkinter (tlačidlo a vstupné políčko Entry, Listbox) from tkinter import * def nejakamojafunkcia(): #príkazy v tejto funkcii sa vykonajú keď užívateľ klikne na tlačidlo Button(text='Pokus',command=nejakamojafunkcia).pack() #pozor na veľké B #Tlačidlo zviazané s funkciou nejakamojafunkcia e=entry() #vstupné políčko, kam užívateľ môže niečo zadať e.pack(side='left') #(alebo aj top, right), zobrazí vstupné políčko #a hodnotu zadanú v Entry si zistíme takto: cojetam=e.get() lb=listbox() lb.pack() lb.insert(0, 'Toto vkladam na zaciatok (vrch) listboxu') lb.delete(0, 'end') # vymaz vsetko v listbox (od nultej po poslednu polozku) lb.insert(end, 'Toto vkladam na koniec listboxu') ZOZNAMY (LIST) Indexuje sa od 0 do len(zoznam)-1 "Deklarácia", resp. inicializácia: a=[0]*5 je to isté ako a=[0,0,0,0,0] resp. rovno dávame počiatočné hodnoty: a=[21,13,17,5,29] dlzka=len(a) - vráti počet prvkov zoznamu, for i in range(len(zoznam)): #akurát to sedí na 0 až len(zoznam)-1 print(a[i]) Cyklus cez prvky zoznamu: #vypíše rovno prvky zoznamu (bez range) for prvok in zoznam: print(prvok) "Naťahovanie zoznamu" zoz=[] #Vytvor prázdny zoznam zoz.append(42) #Pridaj prvok na koniec zoznamu Zoznam vs. string zoznam=list('python') #takto spravím zo immutable stringu zoznam, aby som mohol meniť jeho jednotlivé znaky

#takto dostanem tento zoznam stringov: ['p', 'y', 't', 'h', 'o', 'n'] s=''.join(zoznam) #všetky prvky spojí do reťazca a ako oddeľovač medzi nimi dá prázdny string, takže vyjde z toho jeden string z pôvodných prvkov zoznamu SLICE (REZY): 'Vyrezávame' (vyberáme) časti zoznamov alebo textových reťazcov print(zoz[1:4]) #vypíše prvky s indexami 1 až 3 (teda 4. nie) print(zoz[:5], zoz[7:], zoz[::2], zoz[::-1]) Rôzne metódy zoznamu zoznam.count(hodnota) #vráti počet výskytov hodnoty v poli (alebo v n-tici) zoznam.index(hodnota) #vráti index prvého výskytu hodnoty v poli (alebo v n-tici) zoznam.append(hodnota) #pridá novú hodnotu na koniec pôvodného poľa zoznam.insert(index, hodnota) #vloží hodnotu do pôvodného poľa pred zadaný index zoznam.pop() #odstráni posledný prvok pôvodného poľa a vráti tento prvok ako hodnotu zoznam.pop(0) #odstráni prvý prvok pôvodného poľa a vráti tento prvok ako hodnotu zoznam.remove(hodnota) #vyhodí z pôvodného poľa prvý výskyt hodnoty zoznam.sort() #vzostupne utriedi pôvodné pole, prvky poľa sa musia dať porovnávať Časovač pomocou metódy After def robstale(): if zivoty>0: #keď bude počet životov 0, tak sa časovač zastaví g.after(200,robstale) #počet milisekúnd a funkcia, ktorá sa potom vykoná robstale() #prvotné spustenie časovača (v hlavnom programe) Manipulácia s grafickými útvarmi v canvase súradnice a zmazanie cislo_utvaru=g.create_oval(10,10,20,30) g.move(cislo_utvaru,-20,0) g.delete(cislo_utvaru) suradnice=g.coords(cislo_utvaru) #vráti štvorprvkové pole so súradnicami g.coords(cislo_utvaru,10,20,100,200) #Nastavenie súradníc útvaru (t.j. zmena pozície a rozmerov) Manipulácia s grafickými útvarmi v canvase ďalšie vlastnosti útvarov g.itemconfig(cislo_utvaru,fill='blue') #zmeň farbu výplne na modrú farba=g.itemcget(cislo_utvaru,'fill') #zisti farbu výplne Textové súbory čítanie po riadkoch Pozn: Na súťažiach ako KSP/Zenit/OI používajte funkciu input() akoby ste vstup riadok po riadku zadávali ručne Napr: Vstup: 15 8 13 79 4 12 6 zoz=input().split() #vráti zoznam STRINGOV zoznamcisel=list(map(int,zoz)) #vysledkom bude zoznam hodnot typu int subor=open('udaje.txt') riadok=subor.readline() #načíta jeden riadok ako string, na konci bude znak \n riadok=riadok.strip() #zruší netlačiteľné znaky na začiatku a konci reťazca teda aj \n prípadne medzery riadky=subor.readlines() #načíta zvyšné riadky ako ZOZNAM stringov print(riadky) ['Prvy riadok\n', 'Druhy riadok\n'] subor.close()

Čítanie v cykle subor=open('udaje.txt') riadok=subor.readline() while riadok!= '' : #kým nedôjdem na koniec súboru print(riadok) riadok=subor.readline() #načítam ďalší riadok, ktorý sa spracuje v ďalšej iterácii cyklu subor.close() Lambda funkcie aby sa nemusela definovať funkcia s názvom Button(text=' ', command = lambda: print('toto je telo lambda funkcie')).pack() g.bind('<button-1>', lambda event: print('kliklo sa na', event.x, event.y)) #lambda funkcia s parametrom Zoznammocnin = list(map(lambda x: x**2,zoznamcisel)) g.bind('<button-1>', lambda event: (print('prvy prikaz'), print('druhy prikaz')) ) #používať s rozumom a výnimočne Ešte pribudne: Geometry Manager tkinter Grid a Place (umiestňovanie GUI komponentov), slovníky, zapisovanie do súborov, list comprehensions