Programozási nyelvek Python

Hasonló dokumentumok
Adattípusok, vezérlési szerkezetek. Informatika Szabó Adrienn szeptember 14.

BASH script programozás II. Vezérlési szerkezetek

Imperatív programozás

Listák, szótárak, fájlok Listák, szótárak, fájlok

A Python programozási nyelv

A C programozási nyelv II. Utasítások. A függvény.

Imperatív programozás

Programozási nyelvek I. 5. előadás (Gregorics Tibor anyagának felhasználásával)

A C# programozási nyelv alapjai

Python bevezető foglalkozás Python bevezető foglalkozás

Informatika terméktervezőknek

A Python programozási nyelv

Programozás alapjai gyakorlat. 4. gyakorlat Konstansok, tömbök, stringek

Ismerkedés a Python programnyelvvel. és annak micropython változatával

Apple Swift kurzus 3. gyakorlat

Változók. Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai):

Python tanfolyam Python bevezető I. rész

PYTHON. Avagy hosszú az út a BioPythonig

AWK programozás, minták, vezérlési szerkezetek

AWK programozás, minták, vezérlési szerkezetek

Hálózatok építése és üzemeltetése

2018, Diszkrét matematika

Programozási segédlet

Gyakorló feladatok Gyakorló feladatok

Szkriptnyelvek. 1. UNIX shell

Programozási nyelvek JAVA EA+GY 1. gyakolat

Programozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar

van neve lehetnek bemeneti paraméterei (argumentumai) lehet visszatérési értéke a függvényt úgy használjuk, hogy meghívjuk

Bánsághi Anna 2014 Bánsághi Anna 1 of 68

Funkcionális és logikai programozás. { Márton Gyöngyvér, 2012} { Sapientia, Erdélyi Magyar Tudományegyetem }

Operációs rendszerek. 11. gyakorlat. AWK - szintaxis, vezérlési szerkezetek UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Tartalom Keresés és rendezés. Vektoralgoritmusok. 1. fejezet. Keresés adatvektorban. A programozás alapjai I.

Keresés és rendezés. A programozás alapjai I. Hálózati Rendszerek és Szolgáltatások Tanszék Farkas Balázs, Fiala Péter, Vitéz András, Zsóka Zoltán

Programozás alapjai C nyelv 4. gyakorlat. Mit tudunk már? Feltételes operátor (?:) Típus fogalma char, int, float, double

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós március 3. Széchenyi István Egyetem, Gy r

Java II. I A Java programozási nyelv alapelemei

Algoritmizálás + kódolás C++ nyelven és Pascalban

Szoftvertechnológia alapjai Java előadások

Webprogramozás szakkör

Bánsághi Anna 2014 Bánsághi Anna 1 of 33

Programozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós augusztus 29. Széchenyi István Egyetem, Gy r

PHP. Telepítése: Indítás/újraindítás/leállítás: Beállítások: A PHP nyelv

Mit tudunk már? Programozás alapjai C nyelv 4. gyakorlat. Legnagyobb elem keresése. Feltételes operátor (?:) Legnagyobb elem keresése (3)

1. Alapok. #!/bin/bash

Java programozási nyelv

Változók és adattípusok Változók és adattípusok

Alapok. tisztán funkcionális nyelv, minden függvény (a konstansok is) nincsenek hagyományos változók, az első értékadás után nem módosíthatók

.Net adatstruktúrák. Készítette: Major Péter

C programozás. { Márton Gyöngyvér, 2009 } { Sapientia, Erdélyi Magyar Tudományegyetem }

Imperatív programozás

S z á m í t ó g é p e s a l a p i s m e r e t e k

Java II. I A Java programozási nyelv alapelemei

Smalltalk 2. Készítette: Szabó Éva

Komputeralgebra Rendszerek

// keressük meg a legnagyobb faktoriális értéket, ami kisebb, // mint százmillió

BASH SCRIPT SHELL JEGYZETEK

A MATLAB alapjai. Kezdő lépések. Változók. Aktuális mappa Parancs ablak. Előzmények. Részei. Atomerőművek üzemtana

A JavaScript főbb tulajdonságai

Számítógépes Hálózatok. 1. Gyakorlat

Mintavételes szabályozás mikrovezérlő segítségével

INFORMATIKA javítókulcs 2016

Programozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós október 11. Széchenyi István Egyetem, Gy r

Karakterkészlet. A kis- és nagybetűk nem különböznek, a sztringliterálok belsejét leszámítva!

A C programozási nyelv I. Bevezetés

A C programozási nyelv I. Bevezetés

Felvételi vizsga mintatételsor Informatika írásbeli vizsga

A félév során előkerülő témakörök

Halmazelmélet. 1. előadás. Farkas István. DE ATC Gazdaságelemzési és Statisztikai Tanszék. Halmazelmélet p. 1/1

1. Egyszerű (primitív) típusok. 2. Referencia típusok

A programozás alapjai

Programozás I. 1. előadás: Algoritmusok alapjai. Sergyán Szabolcs

Változók. Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai):

Python I. Vincze Dávid Miskolci Egyetem, IIT

MATLAB alapismeretek I.

Adatszerkezetek 1. Dr. Iványi Péter

1. Alapfogalmak Algoritmus Számítási probléma Specifikáció Algoritmusok futási ideje

Járműfedélzeti rendszerek II. 2. előadás Dr. Bécsi Tamás

Programozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós szeptember 27. Széchenyi István Egyetem, Gy r

2016, Diszkrét matematika

AWK programozás Bevezetés

Szoftvertervezés és -fejlesztés I.

1. Bevezetés szeptember 9. BME Fizika Intézet. Szám. szim. labor ea. Tőke Csaba. Tudnivalók. feladat. Tematika. Moodle Házi feladatok

Bevezetés a programozásba II. 5. Előadás: Másoló konstruktor, túlterhelés, operátorok

Összetett programozási tételek Rendezések Keresések PT egymásra építése. 10. előadás. Programozás-elmélet. Programozás-elmélet 10.

Algoritmizálás + kódolás C++ nyelven és Pascalban

Maximum kiválasztás tömbben

Programozási nyelvek 6. előadás

Kinek szól a könyv? A könyv témája A könyv felépítése Mire van szükség a könyv használatához? A könyvben használt jelölések. 1. Mi a programozás?

LEGO robotok. XII. rész

Alkalmazott modul: Programozás. Programozási tételek, rendezések. Programozási tételek Algoritmusok és programozási tételek

Intermec EasyCoder PM4i nyomtató programozásának alapjai Intermec Fingerprint v8.00 nyelven

Objektumorientált Programozás VI.

Programozás BMEKOKAA146. Dr. Bécsi Tamás 3. előadás

2016, Diszkrét matematika

Programozás Minta programterv a 1. házi feladathoz 1.

2018, Funkcionális programozás

Alkalmazott modul: Programozás. Programozási tételek, rendezések Giachetta Roberto

Készítette: Nagy Tibor István

Függvények. Programozás alapjai C nyelv 7. gyakorlat. LNKO függvény. Függvények(2) LNKO függvény (2) LNKO függvény (3)

Programozás alapjai C nyelv 7. gyakorlat. Függvények. Függvények(2)

Átírás:

Programozási nyelvek Python

A nyelv története és jellemzői 2

A nyelv története Tervező Guido van Rossum (1956, Hollandia) Befolyásoló nyelvek ABC (pl. blokkok jelölése behúzással); Modula-3; C; C++; Unix shell stb. A név eredete Monty Python Repülő Cirkusza Mérföldkövek 0.9.0 1991; 1.0 1994; 2.0 2000; 3.0 2008 Monty Python Repülő Cirkusza 3

A nyelv jellemzői Magas szintű és általános célú programozási nyelv Többelvű: imperatív; funkcionális és objektumorientált Interpretált Interaktív módban is használható Nagybetű kisbetű A kulcsszavak csupa kisbetűsek A blokkok behúzással (azonos darabszámú szóközökkel) jelölhetők ki Az utasításlezáró jel a sor vége A fejlesztői környezet számos platformra elérhető Windows, Linux, Macintosh stb. 4

Változók és értékadás 5

Változók Nem a változónak van típusa, hanem a benne tárolt értéknek következmények: Nincsen változódeklarálás A változóban tárolt érték típusa a program futása során megváltozhat A változóban tárolt érték mérete tetszőleges lehet (a memória mérete szab határt) Konstans nem definiálható 6

Értékadás Egyszerű értékadás változó = érték Többszörös értékadás változó 1,, változó n = érték 1,, érték n 7

Típusok 8

Típusok Áttekintés Elemi típusok implicit alak konverziós művelet Egész szám 0 int() Valós szám 0.0 float() Komplex szám 0.0+0.0j complex() Logikai True/False bool() Összetett típusok implicit alak konverziós művelet Szöveg v. str() Lista (tömb) [ ] list() Szótár (asszoc. tömb){} dict() Halmaz {} set() 9

Példa: elemi típusok implicit alakjai darab = 100 távolság = 100.0 a = 3+1.5j van = False név = 'Michael Palin' # egész szám # valós szám # komplex szám # logikai érték # szöveg 10

Példa: összetett típusok implicit alakjai # lista: l = ['Eric Idle', 128, 35.4, 'Terry Gilliam'] # szótár: autó = {'típus':'bugatti', 'év':1916, 'motorméret':5000} # halmaz: h = {'Eric Idle', 128, 35.4, 'Terry Gilliam'} 11

Egész szám típus Típusnév és konverziós művelet int Műveletek + összeadás kivonás * szorzás / osztás // hányados % maradék ** hatványozás += -= *= /= ==!= < <= > >= érték változtatása relációk 12

Valós szám típus Típusnév és konverziós művelet float Műveletek + összeadás kivonás * szorzás / osztás ** hatványozás += = *= /= ==!= < <= > >= érték változtatása relációk 13

Komplex szám típus Típusnév és konverziós művelet complex Műveletek + összeadás kivonás * szorzás / osztás ** hatványozás += = *= /= ==!= érték változtatása relációk 14

Logikai típus Típusnév és konverziós művelet bool Műveletek and or not 15

Szöveg típus Típusnév és konverziós művelet str Műveletek + összefűzés * sokszorozás += hozzáfűzés ==!= < <= > >= n=len(s) t=s[i] t=s[i:j] relációk s hossza s i. karaktere s i-től j-1-ig tartó szelete 16

Példa: szöveg hossza és szelete név = 'Borbála' n = len(név) # 7 s = név[2] # r s = név[-1] # a s = név[3:6] # bál s = név[1:-2] # orbá s = név[3:] # bála s = név[:3] # Bor 17

Szöveg típus Metódusok n=s.find(t) t első előfordulásának indexe s-ben, vagy -1 n=s.rfind(t) t utolsó előfordulásának indexe s-ben, vagy -1 n=s.count(t) t előfordulásainak száma s-ben t=s.replace(u, v) u-k cseréje v-re s-ben 18

Szöveg típus Metódusok l=s.split(x) s darabolása listává x-ek mentén t=s.strip(x); t=s.lstrip(x); t=s.rstrip(x) a whitespace-ek eltávolítása mindkét irányban vagy csak az egyikben t=s.lower(); t=s.upper() s átalakítása csupa kis- vagy nagybetűssé 19

Példa: szöveg darabolása listává majd elemi adatokká sor = 'Budapest Debrecen 226' adatok = sor.split(' ') # ['Budapest', 'Debrecen', '226'] város1 = adatok[0] város2 = adatok[1] távolság = int(adatok[2]) # típuskonverzió 20

Lista típus Típusnév és konverziós művelet list Műveletek + összefűzés * sokszorozás += hozzáfűzés in tartalmazás-vizsgálat n=len(l) e=l[i]; l[i]=e m=l[i:j]; l[i:j]=m l hossza l i. eleme l i-től j-1-ig tartó szelete 21

Példa: listák létrehozása l = ['Eric Idle', 128, 35.4, 'Terry Gilliam'] üres_l = [] egyesített_l = [1, 2, 3] + ['A', 'B', 'C'] sokelemű_l = [0] * 10 22

Példa: lista hossza és szelete l = ['Eric Idle', 128, 35.4, 'Terry Gilliam'] n = len(l) # 4 e = l[2] # 35.4 e = l[-1] # 'Terry Gilliam' m = l[0:2] # ['Eric Idle', 128, 35.4] m = l[1:-2] # [128] m = l[2:] # [35.4, 'Terry Gilliam'] m = l[:2] # ['Eric Idle', 128] 23

Lista típus Metódusok l.append(e) e hozzáfűzése a listához l.insert(e, i) e beszúrása az i. helyre e=l.pop(i) az i. (vagy paraméter nélkül az utolsó) elem eltávolítása és visszaadása l.remove(e) e első előfordulásának eltávolítása a listából n=l.index(e) e első előfordulásának indexe, vagy -1 l.reverse(); l.sort() a lista megfordítása vagy rendezése (a reverse=true paraméterrel csökkenően) 24

Lista típus Függvények e=min(l); e=max(l) l legkisebb illetve legnagyobb eleme 25

Szótár típus Típusnév és konverziós művelet dict Műveletek e=d[k]; d[k]=e del(d[k]) k in d d szótár k kulcsú eleme d szótár k kulcsú elemének törlése tartalmazás-vizsgálat 26

Példa: szótár típus #szótár létrehozása: autó = {'típus':'bugatti', 'év':1916, 'motorméret':5000} #szótár adott kulcsú értéke (olvasásra vagy írásra): év = autó['év']; autó['év'] = 1932 #új kulcs és érték hozzáadása: autó['szín'] = 'pisztácia' #kulcs és érték törlése: del(autó['szín']) 27

Példa: szótárak listája #üres lista létrehozása: autók = [] #szótárak hozzáfűzése a listához: autó = {'típus':'bugatti', 'év':1916, 'motorméret':5000} autók.append(autó) autó = {'típus':'toyota', 'év':2006, 'motorméret':3956} autók.append(autó) #lista adott indexű elemének adott kulcsú értéke: x = autók[0]['motorméret'] # 5000 28

Halmaz típus Típusnév és konverziós művelet set Műveletek unió & metszet különbség ^ szimmetrikus diff. = &= = ^= halmaz változtatása ==!= < <= > >= relációk in tartalmazás-vizsgálat n=len(h) h elemszáma Metódusok h.add(e); h.discard(e) e elem hozzáadása/elvétele 29

Szöveges fájl Fájl megnyitása olvasásra f=open(név, r ) Fájl megnyitása írásra f=open(név, w ) Fájl megnyitása hozzáfűzésre f=open(név, a ) Fájl bezárása f.close() 30

Szöveges fájl Fájl beolvasása szövegként (sorvége jelekkel) s=f.read() Fájl beolvasása listába (1 elem = 1 sor; sorvége jelek nélkül) l=f.read().splitlines() Fájl olvasása soronként (sorvége jelekkel) for sor in f: utasítások Sorvége jel eltávolítása sorból sor=sor.rstrip( \n ) 31

Szöveges fájl Fájlba írás (szükséges esetben sorvége jellel) f.write(s) Lista fájlba írása (1 elem = 1 sor) f.write( \n.join(l)) 32

Vezérlési szerkezetek 33

Elágazás Ismétlés Feltételes ciklus Bejáró ciklus Vezérlési szerkezetek Áttekintés 34

Elágazás Ha akkor if feltétel: utasítás(ok) Ha akkor különben if feltétel: utasítás(ok) else: utasítás(ok) 35

Elágazás Ha akkor különben ha akkor if feltétel 1 : utasítás(ok) elif feltétel 2 : utasítás(ok) elif feltétel 3 : utasítás(ok) 36

Feltételes ciklus Feltételes ciklus while bentmaradási_feltétel: utasítás(ok) Vezérlésátadás a feltételes ciklusban continue visszatérés a ciklus elejére break kilépés a ciklusból 37

Bejáró ciklus Bejárhatók az összetett típusú adatok (szöveg, lista, szótár, halmaz) Bejáró ciklus (alapeset) for ciklusváltozó in összetett_adat: utasítás(ok) Ha csak a lista egy intervallumát kell bejárni for ciklusváltozó in összetett_adat[i:j]: utasítás(ok) Ha szükség van az elemek indexeire for i, cv in enumerate(összetett_adat): utasítás(ok) 38

Bejáró ciklus Vezérlésátadás a bejáró ciklusban continue visszatérés a ciklus elejére break kilépés a ciklusból 39

Kiírás és beolvasás, eljárás és függvény, modul 40

Kiírás és beolvasás Kiírás (a kifejezések között szóközökkel, a végén új sorba ugrással) print(kifejezések) Kiírás (a kifejezések között szóközök nélkül) print(kifejezések, sep= ) Kiírás (a végén új sorba ugrás nélkül) print(kifejezések, end= ) Beolvasás változó=input(kifejezés) Beolvasás és konvertálás (pl. egész v. valós számmá) változó=konv_műv(input(kifejezés)) 41

Eljárás és függvény Eljárás meghatározása def név(form. param.ek): utasítás(ok) return Függvény meghatározása def név(form. param.ek) utasítás(ok) return kifejezés Formális paraméter alapértelmezett érték nélkül vagy vele változó változó=alapértelmezett_érték Eljárás vagy függvény hívása az összes paraméter megadásával vagy néhánnyal (és más sorrendben) név(összes érték) név(formális paraméter 1 =érték 1, formális paraméter 2 =érték 2, ) 42

Modul Modulok létrehozása név 1.py, név 2.py, Modulok importálása import név 1, név 2, 43

Hasznos linkek 44

Hasznos linkek A Python hivatalos oldala https://www.python.org/ Python-tananyag https://www.tutorialspoint.com/python/ 45

Előadás vége