SlideShare uma empresa Scribd logo
1 de 72
PROGRAMOZÁS
PYTHON NYELVEN
MIT CSINÁL PONTOSAN EGY
PROGRAMOZÓ?
 Leegyszerűsítve, egy olyan ember, aki képes beszélni a
gépekkel.
 Mi magyarul értünk, a gépek pedig a nullák és egyesek
nyelvén.
 Sajnos nem tudod egyszerűen, magyarul megkérni a gépedet
arra, hogy köszönjön neked. Próbáld ki nyugodtan!
 A nyelvi szakadék 3 módon hidalható át:
 Megtanulhatunk mi az egyesek és nullák nyelvén.
 A számítógépeket tanítjuk meg arra, hogy
megértsék a mi nyelvünket. Ez a távoli cél.
 Addig szükségünk van egy közös nyelvre, amit mi is képesek
MIT CSINÁL PONTOSAN EGY
PROGRAMOZÓ?
 A programozó tehát az az ember, aki ért a gépek
nyelvén. Gyakran fejlesztőknek hívjuk őket, mivel
programokat fejlesztenek.
 Sokféle fejlesztő van a világban, akik rengetegféle
dolgot csinálnak.
A játékfejlesztők játékokat,
az alkalmazásfejlesztők alkalmazásokat, és
a webfejlesztők – igen, jól tippeltél – weboldalakat
készítenek.
PROGRAMOZÓKÉNT GONDOLKODNI
 Gondolj egy egyszerű szendvicsre!
 Egy szendvicset elkészíteni egy viszonylag könnyű
feladat, de még így is több, helyes sorrendben
végrehajtott lépés szükséges a sikerhez, de milyen
sorrendben?
1.Edd meg a finom szendvicset.
2.Lőj egy képet és töltsd fel Instagramra.
3.Vegyél két szelet kenyeret.
4.Tedd a másik szeletet az előző tetejére.
5.Nyomj mustárt a sonka és a zöldségek tetejére.
6.Tedd a sonkát, paradicsomot és salátát az egyik
AZ ALGORITMUS
 Egy jó programozó képes egy komplex megoldást
lebontani egyszerű lépésekre, és ezeket a megfelelő
sorrendbe rakni a gép számára.
 Némileg leegyszerűsítve, a programozás olyan,
mintha recepteket írnál a számítógépeknek.
 Ezt a receptet ALGORITMUSNAK fogjuk hívni, és
folyamatábrán ábrázoljuk az eddigi szöveges,
sorszámozott sorok helyett.
A FOLYAMATÁBRA
 A folyamatábra az algoritmusok grafikus
megjelenítése.
 Az egyes elemi lépéseket
 alakzatok segítségével jelenítjük meg, majd ezeket
nyilakkal kötjük össze, amelyek meghatározzák az egyes
tevékenységek végrehajtásának sorrendjét.
 A különböző jellegű tevékenységekhez különböző
alakzatok tartoznak.
A FOLYAMATÁBRA SZIMBÓLUMAI
 START- ÉS VÉGE SZIMBÓLUM:
Ezek az ellipszis alakzatok határozzák meg azt,
hogy hol kell elkezdenünk az algoritmus
végrehajtását, illetve azt, hogy mikor értük el a
lépéssorozat végét.
 ELEMI TEVÉKENYSÉG: Egy téglalap alakzatban
szereplő egyszerű és egyértelmű lépés, amely nem
igényel további magyarázatot. Az ábrán szereplő
tevékenység például
egy értékadás, ami azt jelenti, hogy az X (más néven
A FOLYAMATÁBRA SZIMBÓLUMAI
 INPUT SZIMBÓLUM: A legtöbb algoritmusnak
szüksége van valamiféle bemeneti adatra. Ezt
általában a felhasználó a végrehajtás során fogja
csak megadni és ezt az értéket fogja az algoritmus
felhasználni.
 OUTPUT SZIMBÓLUM: Máskor az algoritmus egy
eredményt szolgáltat, közölni szeretne valamit a
felhasználóval. A kimenet lehet például egy
mennyiség értéke, vagy lehet egy egyszerű szöveg,
A FOLYAMATÁBRA SZIMBÓLUMAI
 FELTÉTEL SZIMBÓLUM: A folyamatábrák leg-
összetettebb eleme. Egy csúcsára állított rombuszban
egy állítás szerepelhet. Az állítás egy logikai kifejezés, amely
vagy igaz, vagy hamis kell legyen. Miután kiértékeltük ezt a
feltételt, azaz meghatároztuk az igazságtartalmát, két
lehetőség közül választhatunk.
 Képernyőre kiíró program:
HOGYAN TANULJ PROGRAMOZNI
HATÉKONYAN?
PRÓBÁLD MEG ELDÖNTENI, HOGY AZ ALÁBBI ÁLLÍTÁSOK KÖZÜL
MELYIK IGAZ, ÉS MELYIK HAMIS:
 A PROGRAMOZÁST NEHEZEBB ELSAJÁTÍTANI, MINT A TÖBBI
KÉSZSÉGET, ÉS KÜLÖNLEGES TEHETSÉG KELL HOZZÁ.
HAMIS. Ha nem is szuper könnyű megtanulni a
programozást, nem nehezebb, mint bármilyen más új
készséget elsajátítani. És – a közhiedelemmel ellentétben –
nem kell matekzseninek lenned, hogy programokat írj.
 JOBB, HA NAPI 15-20 PERCET TANULSZ, MINT HA EGYSZERRE
ÜLSZ NEKI
2-3 ÓRÁRA.
IGAZ. 15-20 perc koncentrált tanulás naponta elegendő
 HA NEM TUDOM, HOGYAN KELL MEGÍRNI AZ ÚJ FACEBOOKOT
HÁROM HÓNAPNYI TANULÁS UTÁN, NEM IS VAGYOK
PROGRAMOZÓNAK VALÓ.
 HAMIS. Kódolni tanulni olyan, mintha egy új nyelvet próbálnál
elsajátítani. Ott sem várnád el magadtól, hogy 3 hónap után
anyanyelvi szinten beszélj, ugye? Légy türelmes magaddal, és
hagyj időt begyakorolni az új készségeidet!
 RENDBEN VAN, HA NEM ÉRTEK MEG EGY FOGALMAT AZONNAL, VAGY
VISSZA KELL MENNEM GYAKOROLNI OLYASMIT, AMIT MÁR
MEGTANULTAM EGYSZER.
 IGAZ. Ne bátortalanítson el, ha valami nem megy szuper
könnyen, vagy meg kell ismételned bizonyos részeket. Senki
HOGYAN TANULJ PROGRAMOZNI
HATÉKONYAN?
MI AZ A PYTHON?
 Évek óta a listák élén áll a Python, mint az egyik
legnépszerűbb programozási nyelv.
A munkaerőpiacon is az egyik legkeresettebb, emellett
rendkívül népszerű a kezdő programozók körében, de
vajon miért?
 Népszerűsége elsősorban a könnyű szintaxisának
köszönhető.
Megalkotója, Guido van Rossum azt szerette volna elérni,
hogy olyan könnyen érthető legyen, mintha csak angolul
lenne írva. Így a maga egyszerűségével felvette a versenyt
a többi programozási nyelvvel.
MIRE VAN SZÜKSÉGÜNK?
 A .PY FÁJL
Legelőször a megfelelő kiterjesztésű fájl, amibe
beleírhatjuk a kódunkat, és amit később le tudunk
futtatni.
 AZ INTERPRETER – a TOLMÁCS
Egy speciális értelmező program, ami segít nekünk
megírni, és a számítógépünknek futtatni a megírt
Python-kódunkat.
 A PYTHON SHELL
A PYTHON ADATTÍPUSAI
A számítógépek világában az egyik alapvető
építőelem AZ ADAT.
Ha a Pythont emberi nyelvekhez hasonlítod, akkor az egyes adatok
(értékek) a szavaknak felelnek meg.
Ezek lesznek a kódod alap építőelemei.
Az adatoknak típusa van (ahogy Access-ben már
megtanultuk):
1) INT (integer = egész szám):
Ebbe a típusba tartoznak az egész számok. Ez a
legtöbb esetben elegendő lesz számunkra, amikor
A PYTHON ADATTÍPUSAI
2) FLOAT (= lebegőpontos): ide tartoznak a nem egész
számok, amiket használunk pl. amikor osztást
végzünk, vagy nem egész számokkal dolgozunk,
mint pl.: 1.5; 0.001 – tizedesPONTTAL!!
3) BOOL (boolean = logikai érték, Igaz-Hamis): ez az
adattípus kétféle értéket vehet fel: True vagy False.
Segítségével igaz-hamis, igen-vagy-nem típusú
kérdéseket tehetünk fel a kódban.
A PYTHON ADATTÍPUSAI
4) STR (string = zsinór): egyszerű objektumok
sorozata, karaktersor, karakterlánc, karakterfüzér.
Tartalmazhat: betűt, számot, szóközt, szimbólumot.
Minden str típusú értéknek számít, amíg a
karaktersort aposztróf (') vagy idézőjel (") veszi
körbe. Pl.: 'Ez egy string.', "Ez is 1 string.", 'Sőt, 3z is
@z.', és ez '123' is.
VÁLTOZÓK
 A matematikában a változó egy ismeretlen
mennyiséget jelent, míg a számítógép-tudományban
azt a helyet értjük alatta, ahol egy mennyiséget
tárolhatunk.
 A VÁLTOZÓ nem más, mint egy tárolódoboz, amibe
bármikor bármit tehetünk – számot, szöveget.
 A folyamatábránál már találkoztunk változóval.
 Az értékadást követően ha legközelebb a doboz
(változó) nevét írjuk le (IDÉZŐJELEK NÉLKÜL), akkor
behelyettesíti oda
VÁLTOZÓK
 A változókat azért hívjuk változóknak, mert az
értékük változhat.
 Ha új értéket adunk neki, a régi egyszer s
mindenkorra nyomtalanul eltűnik.
 Gondoljuk végig az alábbi program kimenetét, aztán
futtassuk a programot, hogy kiderüljön, jól
tippeltünk-e.
VÁLTOZÓKRA VONATKOZÓ SZABÁLYOK
Szabály, hogy a Python változónevei:
 betűvel vagy alávonással („_”) kezdődhetnek;
 betűvel, számmal vagy alávonással folytatódhatnak;
 ÍRÁSJEL ÉS SZÓKÖZ NEM LEHET BENNÜK – egybeírjuk;
 kis- és a nagybetűérzékeny (azaz Majom, majom és
majoM három külön változó). Ezért egybeírt
összetettszavas változónév esetén a szóhatárokat
nagybetűvel is jelölhetjük (pl.: szulHely);
 nem egyezhetnek meg az úgynevezett „foglalt
szavakkal” – ilyen például a for, az if, vagy a while.
ADATBEKÉRÉS – AZ INPUT PARANCS
 A legtöbb program kér adatokat a felhasználótól. A
telefonunkba be kell írni az új telefon számot, vagy egy
listából kiválasztani a már rögzítettet. A böngészőnkbe
beírjuk, hogy melyik webhelyet nyissa meg. A
gépünknek megadjuk a jelszavunkat.
 Pythonban a felhasználótól az INPUT utasítással
kérhetünk adatot. Az utasítás legegyszerűbb formája az
, így, két zárójellel. Írjunk be ennyit egy
programba, és futtassuk le!
AZ INPUT PARANCS
 Ha az előző programunkat úgy módosítjuk, hogy a
zárójelek között megadjuk, hogy mit kérdezünk a
felhasználótól,
pl.: , akkor ez kiíródik.
 De a programunk nem jegyzi meg, amit válaszolunk,
mert azt nem mondtuk neki. Itt lesznek
segítségünkre a VÁLTOZÓK!
 A programunk akkor tudja megjegyezni és később
felhasználni a bekért adatokat, ha azt eltároljuk egy
változóban:
A PRINT PARANCS
 Már sokszor találkozunk vele, és mindig csak
egyértelműnek vettük a jelenlétét.
 A utasítás ebben az esetben nem nyomtatja
ki a kért adatokat, hanem a képernyőre való kiíratást
jelenti.
 A print utasítás több dolgot is ki tud írni egymás
után. Amit ki akarunk íratni, azt a zárójelen belül,
vesszővel elválasztva kell felsorolnunk. pl.:
 Bármelyik szöveg helyett írható változó.
 FELADAT: Egészítsd ki az előző névbekérős
KÜLÖNLEGES PRINT KAPCSOLÓK
 SEP: A kiírandók közé alapértelmezetten tesz
szóközt. Ennek megakadályozására a parancs végére
megadhatjuk, hogy NE legyen elválasztó karakter:
KÜLÖNLEGES PRINT KAPCSOLÓK
 n: Ezzel tudunk sort törni a parancsban kiadott
szövegben
 ’’: A semmi kiíratásával is kérhetünk egy üres sornyi
térközt
 END: Két külön print() parancs két külön sorba írja ki
az eredményét. A sep-hez hasonlóan ez is
megakadályozható:
KÜLÖNLEGES PRINT KAPCSOLÓK
 Backslach (’’): A visszaperjel egy vezérlőkarakter, és
nem kerül közvetlen kiírásra, értelmezni próbálja. Ha
visszaperjelet akarsz kiíratni, akkor egymás után
kettőt kell írni!
 Rajzoltasd meg az alábbi ábrákat karakterek
segítségével:
GYAKORLÁS
1) Mit írnak ki az alábbi programok?
2) Visszhangjáték: kérjünk be a felhasználótól egy szót, és a
programunk írja ki neki háromszor!
 Kell egy változó, amiben eltárolod a bekért szót.
 Azt a változót írja ki háromszor. Próbáld ki, hogy meg tudod-e
szorozni!
3) Kérdezd meg a felhasználótól a nevét, az osztályát, és hogy
hány éves!
Ez után egy összetett mondatban illőn üdvözöld és írasd ki
neki az adatait!
1.) 2.) 3.)
MATEMATIKAI OPERÁTOROK
 Az operátorok olyan karakterek, amelyek a mellettük
álló adatokkal valamilyen műveletet hajtanak végre, és
ezzel új értéket hoznak létre.
 Az operátorok működési elvükben nagyon hasonlítanak
a matemati-kai műveleti jelekre:
 Összeadás: +
 Kivonás: -
 Szorzás: *
 Osztás: /  tizedes törtet ad eredményül
 Hatványozás: **
 Maradék: %  Előbb megnézi, hogy hányszor van meg a bal oldali
számban a jobb oldali szám, majd visszaadja az osztás maradékát: (17 % 5)
esetében a válasz 2, mert 17-ben háromszor van meg az 5, és 2 a maradék.
MATEMATIKAI OPERÁTOROK MŰKÖDÉSE
 Az, hogy a műveleti jel pontosan milyen műveletet
végez, attól is függ, hogy az adat milyen típusú.
 A Python nem találgat, hanem azt várja el, hogy
pontosan adjuk meg az adatok típusát.
 A műveleti sorrend a matematikai elvekkel teljesen
megegyező.
 Az összeadásjel:
 két számot összead,
 két karakterláncot egymás mellé ír.
 A szorzásjel:
 két számot összeszoroz,
 számot észlelve a karakterláncot egymás mellett a számnak
ÖSSZEHASONLÍTÓ OPERÁTOROK
 Időnként előfordul majd, hogy összehasonlító jellegű
kérdéseket szeretnél feltenni a kódodban. pl.: „X
nagyobb-e, mint Y?” vagy „’W’ egyenlő-e ’Z’-vel?”.
 Az ilyen kérdéseket a Python képes kiértékelni, és
True / False kijelentésekkel megválaszolni (ez lesz a
bool érték).
 Az összehasonlító operátorok nem mások, mint a
RELÁCIÓS JELEK, amit az Access-ben is gyakran
használtunk már, akár szövegekkel is (egyenlő, vagy
ÖSSZEHASONLÍTÓ OPERÁTOROK
 Fajtái:
 Gyakorlás:
Érték
1
Operáto
r
Érték
2
Kiolvasva
Eredmén
ye
5 > 2 Öt NAGYOBB-E, MINT kettő? True
10 < 7 Tíz KISEBB-E, MINT hét? False
3 >= 1
Három NAGYOBB VAGY EGYENLŐ, MINT
egy?
True
4 <= 9
Négy KISEBB VAGY EGYENLŐ, MINT
kilenc?
True
8 == 8 Nyolc EGYENLŐ-E nyolccal? True
négy != négy Négy NEM EGYENLŐ-E néggyel? False
LOGIKAI OPERÁTOROK
Őket is tanultuk már az Access-ben.
Feltételek összefűzéséhez használtuk akkor is:
 AND: ÉS kapcsolat (minden feltételnek igaznak kell
lennie)
 OR: VAGY kapcsolat (elég, ha az egyik operandusa
igaz)
TÍPUSÁTALAKÍTÁSOK -
TÍPUSKONVERZIÓ
 Ahhoz, hogy az operátorok tudjanak műveleteket, vagy
összehasonlításokat végezni az adatokkal, ahhoz azonos típusra
kell őket alakítanunk.
 Próbáljuk ki, hogy mi történik, ha bekérünk két számot, és azokkal
műveletet szeretnénk végrehajtani!
 Miért írja egymás után a megadott számokat?
Mikor fordul ez elő eddigi tanulmányaink alapján?
 Bár mi számmal válaszoltunk, de a Python óvatos. Nem tudhatja,
hogy amit válaszoltunk a kérdésére, azt biztos tízes
számrendszerbeli számnak gondoltuk-e.
 Ezért minden, amit az INPUT() a programunknak átad, az szöveg,
azaz STR típusú.
TÍPUSKONVERZIÓ
 A típusátalakítást a Pythonban a kívánt adattípus
nevével megegyező utasítással végezzük el. (int,
float, str)
pl.: az int('2021') utasítás eredménye 2021
számként.
 Típuskonverzióval közvetlenül a bekérésnél is
megadható, hogy a bejövő adat milyen adattípusú
legyen.
 Fentiek alapján az előző programunk helyes
megoldása:
GYAKORLÁS
4) Kérd be az idei évet, és tárold el számként!
5) Kérd be, hogy melyik évben született a felhasználó,
és tárold számként!
6) Kérd be a nevét és tárold el egy változóban!
7) Ezt követően üdvözöld a felhasználót, és közöld
vele, hogy hány éves (az idei évből ki kell vonni a
születési idejét):
TÍPUSKONVERZIÓ – STRINGGÉ ALAKÍTÁS
 Láttuk már, hogy két karakterlánc összeadható, és azt is
láttuk, hogy a PRINT() utasításnak több kiírnivaló is
átadható, amiket vesszővel választunk el típustól
függetlenül. De vajon lehet olyat írni, hogy
 Hogyne! Ilyenkor előbb „összeadódnak” a
KARAKTERLÁNCOK, és ezt követően egyetlen
karakterláncot kap meg a PRINT().
 A probléma az INPUT() paranccsal van, mert ott nem
működik a vesszős összefűzés, ami típusfüggetlen
lenne.
 Ha több dolgot szeretnél egyszerre megkérdezni, vagy
FELADATOK
8) Tengeri mérföld: Kérjünk be egy kilométerben mért
távolság-adatot a felhasználótól, és írjuk ki tengeri
mérföldre átváltva!
(Egy tengeri mérföld 1852 méter.)
9) Írj programot, amelyben egy a nevű változóban
eltárolsz egy számot, egy b nevű változóban egy
másikat. Majd kiírod a képernyőre az elvégzett
művelettel együtt az a-b különbségét.
10)Négyzet: Kérjük be egy négyzet oldalának méretét,
és írassuk ki, hogy az a-oldalú négyzet kerülte és
területe mekkora!
ELÁGAZÁS – AZ IF PARANCS
 Hasznos programok írásához szinte mindig szükségünk van
a feltételek ellenőrzésének képességére és arra, hogy ezek
alapján megváltoztassuk a program viselkedését.
 A feltételes utasítások adják meg nekünk ezt a képességet.
A legegyszerűbb formája ennek az if utasítás:
Az IF utasításnak 2 eredménye lehet: Az első eredmény akkor
áll elő, ha az összehasonlítás IGAZ. A második pedig akkor, ha
HAMIS.
Szám >
0
A szám
pozitív
A szám
negatív
AZ IF SZINTAKTIKÁJA
 Az if utasítás tartalmaz egy fejléc sort és egy törzset.
 FEJLÉC: az if kulcsszóval kezdődik, amit egy igaz-hamis
kifejezés követ, majd kettősponttal (:) zárul.
 TÖRZS: A fejlécet követő behúzott sorok alkotják a törzset
az összes ággal együtt. Az első nem behúzott sor jelenti a
törzs végét.
 ELSŐ BLOKK: Az első blokk összes utasítása sorban végre
lesz hajtva, ha a Boolean kifejezés
2 if BOOLEAN-KIFEJEZÉS:
3 | UTASÍTÁS_1 #Végrehajtódik, ha a feltétel kiértékelése
igaz értéket ad
4 else:
5 | UTASÍTÁS_2 #Végrehajtódik, ha a feltétel kiértékelése
hamis értéket ad
fejléc
törzs
AZ IF SZINTAKTIKÁJA
 ELSE ÁG: else utasítás, melyet (:) követ
 MÁSODIK BLOKK: Az első utasításblokk egésze ki
lesz hagyva, ha a logikai kifejezés FALSE értékű, és
ezek helyett az else alatti összes behúzott sor
hajtódik végre.
 A két utasításblokk közül tehát pontosan az egyik
hajtódik végre, és ezután a vezérlés a
2 if BOOLEAN-KIFEJEZÉS:
3 | UTASÍTÁS_1 #Végrehajtódik, ha a feltétel kiértékelése
igaz értéket ad
4 else:
5 | UTASÍTÁS_2 #Végrehajtódik, ha a feltétel kiértékelése
hamis értéket ad
fejléc
törzs
IF FAJTÁI
 Egyágas elágazás: nem írjuk meg az else-ágat, és így
csak a TRUE-ág parancsait hajtja végre.
 Láncolt feltételes elágazás: több if parancs
összefűzésével több kimenetet is tudunk kezelni,
ahogy az Excel-ben is csináltuk.
A fejlécet és az első blokkot válto-
zatlanul megírjuk.
Az ELSE helyett ELSE IF (rövidítve
ELIF) ágat írunk, és az Excel-hez
hasonlóan itt is a végén csak 1 db
hamis, ELSE ág lesz.
FELADATOK
12)Írjunk programot, ami bekér egy számot, és
vizsgálat után kiírja, hogy pozitív, vagy negatív-e a
szám.
13)Az előző programot javítsuk egy 3. lehetőséggel,
ha nullát írna be a felhasználó, akkor arra írja ki,
hogy nulla.
14)Készíts egy programot, ami bekér egy számot a
felhasználótól, majd kiírja, hogy a megadott szám
páros-e vagy páratlan. [HELP] A maradékos osztás
segít! Mennyivel kell elosztani a számot
FELADATOK
15)Kérdezd meg a felhasználótól, hogy hányadik lett a
versenyen! Ha benne van az első háromban, akkor
írd ki, hogy “dobogós”!
[HELP] Összetett feltételt AND operátorral is tudsz
csinálni, ahogy Access-ben tanultuk, de a Python
könnyített feltételeket is megért: 0<x<4. Csak
az if-sort kell megírni – egyágas elágazás.
16)Vezess be egy változót, és adj neki értéket 1-10
között! Kérj be a felhasználótól egy tippet! Ha
eltalálta, akkor dicsérd meg! Ha nem, akkor ne
VÉLETLENSZÁM-GENERÁTOR
 Meglehetősen unalmas lenne, ha a programunk
mindig csak a hetes számra tudna gondolni. De
szerencsére létezik módszer véletlen számok
előállítására.
 A random.randint (random int = integer, azaz
véletlen egész) a megfelelő utasítás, de
használatához be kell töltenünk a random nevű
modult a program elején.
FELADATOK
17)Kérj be a felhasználótól egy tetszőleges szót! Aztán
kérd tőle ugyanazt a szót még egyszer! Ha nem
egyezik meg a két beírás, akkor írd neki, hogy téves a
jelszó, a jelszóváltoztatás sikertelen. Egyébként a
belépést engedélyezheted számára.
18)Állíts elő két véletlen számot 1-100 között, majd az
input parancsba belefűzve a számokat, kérdezd meg a
felhasználótól azok összegét! Ha helyesen válaszol,
akkor dicsérd meg! Ha nem, akkor mondd neki, hogy
még gyakoroljon.
[HELP] Az input parancsba + jellel tudsz változót
FELADATOK
19)Írj olyan programot, amelyik bekér két csapatnevet és
két pontszámot, majd kiírja a mérkőzés eredményét és
a nyertest is.
20) ...
FELADATOK
21).
22) ...
WHILE-CIKLUS – A FELTÉTELES
 A ciklus valamilyen ismétlődő dolgot jelent.
Gondolhatunk pl.: holdciklusra, választási ciklusra,
árapályciklusra.
 Mi egy olyan programrészletet értünk rajta, amely
valahányszor megismétlődik.
 Szintaktikája hasonló az if utasításhoz:
 Fejléce: WHILE (amíg teljesül…) + BOOLEAN-kifejezés
 Ciklusmag: beljebb kezdődik, és tartalmazza a
 A != helyett milyen
feltétellel érhetjük el
ugyanezt az eredményt?
 Hogyan változik a
program kimenete, ha a
ciklusmag két sorát
felcseréljük?
 Ha a felcserélt sorokkal
is szeretnénk a
számokat 1-től 100-ig
kiírni, mit kell még
módosítani a
 A ciklusba való belépésnek feltétele van – csak akkor
lépünk be a ciklusba, ha ez a feltétel teljesül.
 A ciklusmag végét követően a program futtatása
visszatér a fejlécbe, és kezdi elölről a ciklust.
 A feltételt minden ismétlődéskor újra meg újra
megvizsgálja a Python, és ha nem teljesül, akkor
nem megy be a ciklusba, hanem utána folytatja a kód
végrehajtását.
 Fontos, hogy a while-hurok a fejléc logikai
kifejezését előbb teszteli, mielőtt bármi más
megtörténik. Amint hamis a kiértékelés ered-
ménye, akkor a ciklusmag nem fut le.
ELEMEZZÜNK!
FELADATOK
23) Írj egy programot, amely kiírja a páros számokat 1 és 100
között!
24) Írj egy programot, amely csökkenő sorrendben írja ki a
számokat
1 és 100 között!
25) Írj egy programot, amely kiírja a páratlan számokat csökkenő
sorrendben
1 és 100 között!
26) Írj egy programot, amely a felhasználó által meghatározott
alkalommal írja ki a bekért szöveget!
27) Írj egy programot, amely a felhasználótól páros számot kér be.
Amennyiben a megadott szám páratlan, újra és újra
megtörténik az adatbekérés mindaddig, amíg végül páros
BOOL (LOGIKAI) ADATTÍPUS A
CIKLUSBAN
29) Írj számkitalálós programot! Véletlenszámra gondol a gép
1-10 között. Addig tippelhessünk, amíg el nem találjuk.
Próbáld ki egy új változóval!
30) Fejleszd az előző programod , hogy csak 3x próbálhassa
FELADATOK
Ciklussal meg tudunk oldani egyenleteket
próbálgatással.
32) Oldjuk meg a 3x + 2 = 59 egyenletet a pozitív egészek
halmazán!
33) Oldjuk meg a –x2+6x-9 = 0 egyenletet a pozitív egészek
halmazán!
34) Írj pénzfeldobás-szimulátort! Írja ki, hogy fejet vagy írás
dobott-e, és ajánlja fel, hogy dob újat! Használd a
véletlenszám-generátort! Kipróbálhatod a randint utótag
helyett a choice(['fej', 'írás']) -t is.
35) Fejleszd az előző programot tovább! Automatikusan
FOR-CIKLUS – A LÉPTETŐ
 Bejáró (léptető) ciklusként lehet jellemezni.
 Működését a kifejezésben megadott értékek
határozzák meg, például azt hogy hányszor fusson le
a ciklusmag.
 Szintaktikája hasonló az előzőleg tanultakhoz:
 Fejléce: for i in range(kezdőérték, végérték,
lépés)
 Mi van, ha például az a feladatod, hogy tárold a
programod-ban az összes telefonszámot, amit
felhívtál? Vagy az összes meccseredményt a kedvenc
sportágad múlt hetéből? Vagy az összes könyved
címét? Vagy az összes osztálytársad, kedvenc
mesehősöd nevét? Vagy valami ilyesmit? És ezekkel
később dolgozni is akarsz.
 Azt tudjuk, hogy változókban szokás tárolni a bekért
adatokat. De ezek egyre többen lesznek. Mondjuk
írsz is rá programot:
A LISTA - AZ ÖSSZETARTOZÓ ADATOK
KEZELÉSE
 A lista egy adatszerkezet, vagy idegen szóval
adatstruktúra.
 Az adatszerkezetek arra valók, hogy több, egymással
számunkra összefüggő adatot tároljunk bennük.
 A Python nyelvben a lista jele a szögletes zárójel. pl.:
mesehősök[ ]
 A listáknak érdemes többes számú főnevet névül adni:
lovak, játékosok, hónapok.
 A listának a létrehozása pillanatában is adhatunk
értéket, de a későbbiekben is módunkban áll újabb
elemeket fűzni hozzá.
A LISTA - AZ ÖSSZETARTOZÓ ADATOK
KEZELÉSE
A LISTA TULAJDONSÁGAI
 Megtartja az adatok sorrendjét
 Nem kell egyforma típusú adatoknak lenniük egy
listán belül
 Minden eleme sorszámot kap nullától kezdődően!!
Ennek megfelelően az „n”-elemű lista utolsó eleme
az „n-1”. sorszámú.
 Létrehozása legegyszerűbben az elemek szögletes
zárójelbe való felsorolása.
 A lista elemeinek kiíratására a print() helyett a
.join(listanév) tagfüggvényt, más szóval metódust
FELADATOK
38)Kérd be a felhasználótól a kedvenc zenei előadói
nevét, amíg üres Entert nem üt, és tárold az
eredményt listában!
39)Az előző programot módosítsd úgy, hogy a
kedvenc számok címét is kérd be úgy, hogy a
kérdésbe belefoglalja, hogy melyik előadóról van
szó. És tárold őket egy másik listában!
LISTAELEMEK ELÉRÉSE INDEX-
OPERÁTORRAL
 A lista adatok valamilyen módon rendezett
gyűjteménye.
 Azokat az értékeket, amelyek a listát alkotják
elemeknek nevezzük.
 Ahogyan már korábban is használtuk, a változókhoz
és a listákhoz tartozó listaelemeket paraméterként
hozzárendelhetjük a függvényekhez.
 A listaelemeket külön-külön is elérhetjük a listán
belül a sorszámo-zásuknak köszönhetően az index-
operátorral: [ ].
Ez egy tartomány: [2; 4)
Ez egy művelet, értéke
3
A BEJÁRÓ FOR-CIKLUS
 Használhatjuk a for-ciklusban a ciklusváltozót lista-
indexként, ezt nevezzük bejárásnak:
 Vagy másképp:
A ciklus általában for valami in valamik alakú sorral
kezdődik. A valamik a bejárható objektum, amiben
több dolog van, ezért is többesszámú főnév a neve.
A valami az a valamik épp aktuális eleme, és
bejárónak, más szóhasználattal ciklusváltozónak
nevezzük.
Az előző esetünkben lehetne for gyümi in gyümik.
A LISTA-MŰVELETEK
I. A lista hossza:
 A lista elemeinek a számát megadó függvény:
 A lista elemeinek a száma != az utolsó indexű
elemmel
 Ha indexet használunk a lista eléréséhez,
célszerűbb, ha így használjuk az utolsó elemre való
hivatkozáshoz:
egyszerűbben:
II. Lista tagság: Az in és a not in boolean típusú
operátorok, amelyek megvizsgálják egy elem
41)Megadunk egy listát: lovak = [‘Ráró’, ‘Baró’, ‘Tipró’,
‘Karó’]. Kérd be egy színek nevű listába, hogy
melyik ló milyen színű!
42)Kérd be az éppen célba érkező lóversenyzők nevét,
és tárold el egy listában. Addig kérd, amíg üres
Enter-t nem nyom. A bevitel végén írasd ki a célba
érkezőket vesszővel elválasztva, valamint írasd ki
az első, a második, a harmadik, és az utolsó
helyezettek nevét külön-külön sorban.
43)Emeld négyzetre az xs = [1,2,3,4,5] lista minden
FELADATOK
A LISTA-MŰVELETEK
 A + operátor összefűzi a listákat:
 A * operátor megismétli a listát a megadott
számszor:
 A : szeletelő operátor részlistákat hoz létre, vagy
klónozni is tud:
 Törlés listából az index alapján: del vagy üres
értékadás
Használatuk:
MÓDOSÍTANDÓ_LISTA.METÓDUS(PARAMÉTER)
 .append(elem) -metódus: az új elemet a lista végére
fűzi
 .insert(pozíció, elem) -metódus: a megadott helyre új
elem
 .extend(lista) -metódus: egy lista másik listával való
bővítése
 .remove(elem) -metódus: kiveszi a listából azt, amit
a zárójelben megadunk, pontosabban annak az
LISTA-MŰVELETEK METÓDUSOKKAL
LISTA MÓDOSÍTÁSA
 Az értékadás bal oldalán az index operátor
használatával az egyik elemet módosíthatjuk. Ezt
nevezzük indexelt értékadásnak.
 A : szeletelő operátorral módosíthatunk teljes
részlistát:
 Hozzáadhatunk a listához elemeket úgy, hogy
beszúrjuk őket egy üres szeletre a kívánt helyen:
44)Írj olyan programot, amely egy-egy listába bekéri
három-három leves, főétel és desszert nevét, majd
kiír három menüt, mindegyikben egy levessel,
főétellel és desszerttel!
45)Szimuláljunk száz kockadobást, és az
eredményeket tároljuk listában! A program
számolja meg, hogy hányszor lett hatos!
46)Az előző feladatban számolja meg azt is, hogy hány
helyen volt úgy, hogy ötöst dobott a hatos előtt?
[HELP] Mivel index alapján akarunk vizsgálni, ezért
FELADATOK
47)Állítsunk elő harmincelemű, nulla és kilenc közötti
véletlen számokat tartalmazó listát! A számok egy
útvonal magassági adatait jelentik. Meredek az
útszakasz, ha legalább kettővel magasabb az aktuális
hely, mint az előző. Hány meredek szakasz van az
úton?
48)És visszafelé?
49)A programunk elején adjunk meg két listát: az első
tartalmazzon öt filmcímet, a második a filmek egy-egy
főszereplőjét! Az első filmhez az első szereplő
tartozik, a másodikhoz a második, és így tovább. Írjuk
FELADATOK
Művelet Mit csinál String Lista
indexálás
szöveg[szám]
visszaadja a [szám] indexű elemet  
szeletelés
szöveg [2:4]
visszaadja az objektum egy részét  
összeadás +
egymás mellé helyezi a két objektumot, egy
harmadikat alakítva ki belőlük  
len() Az objektum hosszát állapítja meg  
.count(elem)
megszámolja, hogy hányszor van az adott elem az
objektumban  
.append(elem) az objektum végére biggyeszt valamit  
.extend(lista) az objektumot egy másik objektummal bővíti  
.remove(elem) elvesz egy elemet az objektumból  
.insert(poz,
elem)
új elemet illeszt az objektumba  
STRING VAGY LISTA
FELADATOK
Mindegyik feladathoz a szöveg = “kenyeret ettem
meggyel” karakterláncot használd!
50)Számold meg, hány ’e’ betű van benne!
51)Írasd ki fordítva!
52)Írasd ki minden 3. karakterét!
53)Találjunk ki együtt megoldandó feladatokat!
ELEMI PROGRAMOZÁSI TÉTELEK
 Megfigyelések alapján kategorizálni lehet a
programozási feladatokat, azaz visszavezethetők
néhány alapproblémára.
 Az alapproblémákra létezik megoldási sablon.
 Az ilyen, egy-egy feladattípus megoldását nyújtó
algoritmusokat nevezzük PROGRAMOZÁSI TÉTELNEK.
 Nem, nem kell őket bizonyítani, ez nem matekóra
(még szerencse…)
SOROZATSZÁMÍTÁS: ÖSSZEGZÉS,
SZORZÁS
 Bejárható adattípus elemeivel való műveletek

Mais conteúdo relacionado

Destaque

Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
 

Destaque (20)

Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 

Python programozás 2022.pptx

  • 2. MIT CSINÁL PONTOSAN EGY PROGRAMOZÓ?  Leegyszerűsítve, egy olyan ember, aki képes beszélni a gépekkel.  Mi magyarul értünk, a gépek pedig a nullák és egyesek nyelvén.  Sajnos nem tudod egyszerűen, magyarul megkérni a gépedet arra, hogy köszönjön neked. Próbáld ki nyugodtan!  A nyelvi szakadék 3 módon hidalható át:  Megtanulhatunk mi az egyesek és nullák nyelvén.  A számítógépeket tanítjuk meg arra, hogy megértsék a mi nyelvünket. Ez a távoli cél.  Addig szükségünk van egy közös nyelvre, amit mi is képesek
  • 3. MIT CSINÁL PONTOSAN EGY PROGRAMOZÓ?  A programozó tehát az az ember, aki ért a gépek nyelvén. Gyakran fejlesztőknek hívjuk őket, mivel programokat fejlesztenek.  Sokféle fejlesztő van a világban, akik rengetegféle dolgot csinálnak. A játékfejlesztők játékokat, az alkalmazásfejlesztők alkalmazásokat, és a webfejlesztők – igen, jól tippeltél – weboldalakat készítenek.
  • 4. PROGRAMOZÓKÉNT GONDOLKODNI  Gondolj egy egyszerű szendvicsre!  Egy szendvicset elkészíteni egy viszonylag könnyű feladat, de még így is több, helyes sorrendben végrehajtott lépés szükséges a sikerhez, de milyen sorrendben? 1.Edd meg a finom szendvicset. 2.Lőj egy képet és töltsd fel Instagramra. 3.Vegyél két szelet kenyeret. 4.Tedd a másik szeletet az előző tetejére. 5.Nyomj mustárt a sonka és a zöldségek tetejére. 6.Tedd a sonkát, paradicsomot és salátát az egyik
  • 5. AZ ALGORITMUS  Egy jó programozó képes egy komplex megoldást lebontani egyszerű lépésekre, és ezeket a megfelelő sorrendbe rakni a gép számára.  Némileg leegyszerűsítve, a programozás olyan, mintha recepteket írnál a számítógépeknek.  Ezt a receptet ALGORITMUSNAK fogjuk hívni, és folyamatábrán ábrázoljuk az eddigi szöveges, sorszámozott sorok helyett.
  • 6. A FOLYAMATÁBRA  A folyamatábra az algoritmusok grafikus megjelenítése.  Az egyes elemi lépéseket  alakzatok segítségével jelenítjük meg, majd ezeket nyilakkal kötjük össze, amelyek meghatározzák az egyes tevékenységek végrehajtásának sorrendjét.  A különböző jellegű tevékenységekhez különböző alakzatok tartoznak.
  • 7. A FOLYAMATÁBRA SZIMBÓLUMAI  START- ÉS VÉGE SZIMBÓLUM: Ezek az ellipszis alakzatok határozzák meg azt, hogy hol kell elkezdenünk az algoritmus végrehajtását, illetve azt, hogy mikor értük el a lépéssorozat végét.  ELEMI TEVÉKENYSÉG: Egy téglalap alakzatban szereplő egyszerű és egyértelmű lépés, amely nem igényel további magyarázatot. Az ábrán szereplő tevékenység például egy értékadás, ami azt jelenti, hogy az X (más néven
  • 8. A FOLYAMATÁBRA SZIMBÓLUMAI  INPUT SZIMBÓLUM: A legtöbb algoritmusnak szüksége van valamiféle bemeneti adatra. Ezt általában a felhasználó a végrehajtás során fogja csak megadni és ezt az értéket fogja az algoritmus felhasználni.  OUTPUT SZIMBÓLUM: Máskor az algoritmus egy eredményt szolgáltat, közölni szeretne valamit a felhasználóval. A kimenet lehet például egy mennyiség értéke, vagy lehet egy egyszerű szöveg,
  • 9. A FOLYAMATÁBRA SZIMBÓLUMAI  FELTÉTEL SZIMBÓLUM: A folyamatábrák leg- összetettebb eleme. Egy csúcsára állított rombuszban egy állítás szerepelhet. Az állítás egy logikai kifejezés, amely vagy igaz, vagy hamis kell legyen. Miután kiértékeltük ezt a feltételt, azaz meghatároztuk az igazságtartalmát, két lehetőség közül választhatunk.  Képernyőre kiíró program:
  • 10. HOGYAN TANULJ PROGRAMOZNI HATÉKONYAN? PRÓBÁLD MEG ELDÖNTENI, HOGY AZ ALÁBBI ÁLLÍTÁSOK KÖZÜL MELYIK IGAZ, ÉS MELYIK HAMIS:  A PROGRAMOZÁST NEHEZEBB ELSAJÁTÍTANI, MINT A TÖBBI KÉSZSÉGET, ÉS KÜLÖNLEGES TEHETSÉG KELL HOZZÁ. HAMIS. Ha nem is szuper könnyű megtanulni a programozást, nem nehezebb, mint bármilyen más új készséget elsajátítani. És – a közhiedelemmel ellentétben – nem kell matekzseninek lenned, hogy programokat írj.  JOBB, HA NAPI 15-20 PERCET TANULSZ, MINT HA EGYSZERRE ÜLSZ NEKI 2-3 ÓRÁRA. IGAZ. 15-20 perc koncentrált tanulás naponta elegendő
  • 11.  HA NEM TUDOM, HOGYAN KELL MEGÍRNI AZ ÚJ FACEBOOKOT HÁROM HÓNAPNYI TANULÁS UTÁN, NEM IS VAGYOK PROGRAMOZÓNAK VALÓ.  HAMIS. Kódolni tanulni olyan, mintha egy új nyelvet próbálnál elsajátítani. Ott sem várnád el magadtól, hogy 3 hónap után anyanyelvi szinten beszélj, ugye? Légy türelmes magaddal, és hagyj időt begyakorolni az új készségeidet!  RENDBEN VAN, HA NEM ÉRTEK MEG EGY FOGALMAT AZONNAL, VAGY VISSZA KELL MENNEM GYAKOROLNI OLYASMIT, AMIT MÁR MEGTANULTAM EGYSZER.  IGAZ. Ne bátortalanítson el, ha valami nem megy szuper könnyen, vagy meg kell ismételned bizonyos részeket. Senki HOGYAN TANULJ PROGRAMOZNI HATÉKONYAN?
  • 12. MI AZ A PYTHON?  Évek óta a listák élén áll a Python, mint az egyik legnépszerűbb programozási nyelv. A munkaerőpiacon is az egyik legkeresettebb, emellett rendkívül népszerű a kezdő programozók körében, de vajon miért?  Népszerűsége elsősorban a könnyű szintaxisának köszönhető. Megalkotója, Guido van Rossum azt szerette volna elérni, hogy olyan könnyen érthető legyen, mintha csak angolul lenne írva. Így a maga egyszerűségével felvette a versenyt a többi programozási nyelvvel.
  • 13. MIRE VAN SZÜKSÉGÜNK?  A .PY FÁJL Legelőször a megfelelő kiterjesztésű fájl, amibe beleírhatjuk a kódunkat, és amit később le tudunk futtatni.  AZ INTERPRETER – a TOLMÁCS Egy speciális értelmező program, ami segít nekünk megírni, és a számítógépünknek futtatni a megírt Python-kódunkat.  A PYTHON SHELL
  • 14. A PYTHON ADATTÍPUSAI A számítógépek világában az egyik alapvető építőelem AZ ADAT. Ha a Pythont emberi nyelvekhez hasonlítod, akkor az egyes adatok (értékek) a szavaknak felelnek meg. Ezek lesznek a kódod alap építőelemei. Az adatoknak típusa van (ahogy Access-ben már megtanultuk): 1) INT (integer = egész szám): Ebbe a típusba tartoznak az egész számok. Ez a legtöbb esetben elegendő lesz számunkra, amikor
  • 15. A PYTHON ADATTÍPUSAI 2) FLOAT (= lebegőpontos): ide tartoznak a nem egész számok, amiket használunk pl. amikor osztást végzünk, vagy nem egész számokkal dolgozunk, mint pl.: 1.5; 0.001 – tizedesPONTTAL!! 3) BOOL (boolean = logikai érték, Igaz-Hamis): ez az adattípus kétféle értéket vehet fel: True vagy False. Segítségével igaz-hamis, igen-vagy-nem típusú kérdéseket tehetünk fel a kódban.
  • 16. A PYTHON ADATTÍPUSAI 4) STR (string = zsinór): egyszerű objektumok sorozata, karaktersor, karakterlánc, karakterfüzér. Tartalmazhat: betűt, számot, szóközt, szimbólumot. Minden str típusú értéknek számít, amíg a karaktersort aposztróf (') vagy idézőjel (") veszi körbe. Pl.: 'Ez egy string.', "Ez is 1 string.", 'Sőt, 3z is @z.', és ez '123' is.
  • 17. VÁLTOZÓK  A matematikában a változó egy ismeretlen mennyiséget jelent, míg a számítógép-tudományban azt a helyet értjük alatta, ahol egy mennyiséget tárolhatunk.  A VÁLTOZÓ nem más, mint egy tárolódoboz, amibe bármikor bármit tehetünk – számot, szöveget.  A folyamatábránál már találkoztunk változóval.  Az értékadást követően ha legközelebb a doboz (változó) nevét írjuk le (IDÉZŐJELEK NÉLKÜL), akkor behelyettesíti oda
  • 18. VÁLTOZÓK  A változókat azért hívjuk változóknak, mert az értékük változhat.  Ha új értéket adunk neki, a régi egyszer s mindenkorra nyomtalanul eltűnik.  Gondoljuk végig az alábbi program kimenetét, aztán futtassuk a programot, hogy kiderüljön, jól tippeltünk-e.
  • 19. VÁLTOZÓKRA VONATKOZÓ SZABÁLYOK Szabály, hogy a Python változónevei:  betűvel vagy alávonással („_”) kezdődhetnek;  betűvel, számmal vagy alávonással folytatódhatnak;  ÍRÁSJEL ÉS SZÓKÖZ NEM LEHET BENNÜK – egybeírjuk;  kis- és a nagybetűérzékeny (azaz Majom, majom és majoM három külön változó). Ezért egybeírt összetettszavas változónév esetén a szóhatárokat nagybetűvel is jelölhetjük (pl.: szulHely);  nem egyezhetnek meg az úgynevezett „foglalt szavakkal” – ilyen például a for, az if, vagy a while.
  • 20. ADATBEKÉRÉS – AZ INPUT PARANCS  A legtöbb program kér adatokat a felhasználótól. A telefonunkba be kell írni az új telefon számot, vagy egy listából kiválasztani a már rögzítettet. A böngészőnkbe beírjuk, hogy melyik webhelyet nyissa meg. A gépünknek megadjuk a jelszavunkat.  Pythonban a felhasználótól az INPUT utasítással kérhetünk adatot. Az utasítás legegyszerűbb formája az , így, két zárójellel. Írjunk be ennyit egy programba, és futtassuk le!
  • 21. AZ INPUT PARANCS  Ha az előző programunkat úgy módosítjuk, hogy a zárójelek között megadjuk, hogy mit kérdezünk a felhasználótól, pl.: , akkor ez kiíródik.  De a programunk nem jegyzi meg, amit válaszolunk, mert azt nem mondtuk neki. Itt lesznek segítségünkre a VÁLTOZÓK!  A programunk akkor tudja megjegyezni és később felhasználni a bekért adatokat, ha azt eltároljuk egy változóban:
  • 22. A PRINT PARANCS  Már sokszor találkozunk vele, és mindig csak egyértelműnek vettük a jelenlétét.  A utasítás ebben az esetben nem nyomtatja ki a kért adatokat, hanem a képernyőre való kiíratást jelenti.  A print utasítás több dolgot is ki tud írni egymás után. Amit ki akarunk íratni, azt a zárójelen belül, vesszővel elválasztva kell felsorolnunk. pl.:  Bármelyik szöveg helyett írható változó.  FELADAT: Egészítsd ki az előző névbekérős
  • 23. KÜLÖNLEGES PRINT KAPCSOLÓK  SEP: A kiírandók közé alapértelmezetten tesz szóközt. Ennek megakadályozására a parancs végére megadhatjuk, hogy NE legyen elválasztó karakter:
  • 24. KÜLÖNLEGES PRINT KAPCSOLÓK  n: Ezzel tudunk sort törni a parancsban kiadott szövegben  ’’: A semmi kiíratásával is kérhetünk egy üres sornyi térközt  END: Két külön print() parancs két külön sorba írja ki az eredményét. A sep-hez hasonlóan ez is megakadályozható:
  • 25. KÜLÖNLEGES PRINT KAPCSOLÓK  Backslach (’’): A visszaperjel egy vezérlőkarakter, és nem kerül közvetlen kiírásra, értelmezni próbálja. Ha visszaperjelet akarsz kiíratni, akkor egymás után kettőt kell írni!  Rajzoltasd meg az alábbi ábrákat karakterek segítségével:
  • 26. GYAKORLÁS 1) Mit írnak ki az alábbi programok? 2) Visszhangjáték: kérjünk be a felhasználótól egy szót, és a programunk írja ki neki háromszor!  Kell egy változó, amiben eltárolod a bekért szót.  Azt a változót írja ki háromszor. Próbáld ki, hogy meg tudod-e szorozni! 3) Kérdezd meg a felhasználótól a nevét, az osztályát, és hogy hány éves! Ez után egy összetett mondatban illőn üdvözöld és írasd ki neki az adatait! 1.) 2.) 3.)
  • 27. MATEMATIKAI OPERÁTOROK  Az operátorok olyan karakterek, amelyek a mellettük álló adatokkal valamilyen műveletet hajtanak végre, és ezzel új értéket hoznak létre.  Az operátorok működési elvükben nagyon hasonlítanak a matemati-kai műveleti jelekre:  Összeadás: +  Kivonás: -  Szorzás: *  Osztás: /  tizedes törtet ad eredményül  Hatványozás: **  Maradék: %  Előbb megnézi, hogy hányszor van meg a bal oldali számban a jobb oldali szám, majd visszaadja az osztás maradékát: (17 % 5) esetében a válasz 2, mert 17-ben háromszor van meg az 5, és 2 a maradék.
  • 28. MATEMATIKAI OPERÁTOROK MŰKÖDÉSE  Az, hogy a műveleti jel pontosan milyen műveletet végez, attól is függ, hogy az adat milyen típusú.  A Python nem találgat, hanem azt várja el, hogy pontosan adjuk meg az adatok típusát.  A műveleti sorrend a matematikai elvekkel teljesen megegyező.  Az összeadásjel:  két számot összead,  két karakterláncot egymás mellé ír.  A szorzásjel:  két számot összeszoroz,  számot észlelve a karakterláncot egymás mellett a számnak
  • 29. ÖSSZEHASONLÍTÓ OPERÁTOROK  Időnként előfordul majd, hogy összehasonlító jellegű kérdéseket szeretnél feltenni a kódodban. pl.: „X nagyobb-e, mint Y?” vagy „’W’ egyenlő-e ’Z’-vel?”.  Az ilyen kérdéseket a Python képes kiértékelni, és True / False kijelentésekkel megválaszolni (ez lesz a bool érték).  Az összehasonlító operátorok nem mások, mint a RELÁCIÓS JELEK, amit az Access-ben is gyakran használtunk már, akár szövegekkel is (egyenlő, vagy
  • 30. ÖSSZEHASONLÍTÓ OPERÁTOROK  Fajtái:  Gyakorlás: Érték 1 Operáto r Érték 2 Kiolvasva Eredmén ye 5 > 2 Öt NAGYOBB-E, MINT kettő? True 10 < 7 Tíz KISEBB-E, MINT hét? False 3 >= 1 Három NAGYOBB VAGY EGYENLŐ, MINT egy? True 4 <= 9 Négy KISEBB VAGY EGYENLŐ, MINT kilenc? True 8 == 8 Nyolc EGYENLŐ-E nyolccal? True négy != négy Négy NEM EGYENLŐ-E néggyel? False
  • 31. LOGIKAI OPERÁTOROK Őket is tanultuk már az Access-ben. Feltételek összefűzéséhez használtuk akkor is:  AND: ÉS kapcsolat (minden feltételnek igaznak kell lennie)  OR: VAGY kapcsolat (elég, ha az egyik operandusa igaz)
  • 32. TÍPUSÁTALAKÍTÁSOK - TÍPUSKONVERZIÓ  Ahhoz, hogy az operátorok tudjanak műveleteket, vagy összehasonlításokat végezni az adatokkal, ahhoz azonos típusra kell őket alakítanunk.  Próbáljuk ki, hogy mi történik, ha bekérünk két számot, és azokkal műveletet szeretnénk végrehajtani!  Miért írja egymás után a megadott számokat? Mikor fordul ez elő eddigi tanulmányaink alapján?  Bár mi számmal válaszoltunk, de a Python óvatos. Nem tudhatja, hogy amit válaszoltunk a kérdésére, azt biztos tízes számrendszerbeli számnak gondoltuk-e.  Ezért minden, amit az INPUT() a programunknak átad, az szöveg, azaz STR típusú.
  • 33. TÍPUSKONVERZIÓ  A típusátalakítást a Pythonban a kívánt adattípus nevével megegyező utasítással végezzük el. (int, float, str) pl.: az int('2021') utasítás eredménye 2021 számként.  Típuskonverzióval közvetlenül a bekérésnél is megadható, hogy a bejövő adat milyen adattípusú legyen.  Fentiek alapján az előző programunk helyes megoldása:
  • 34. GYAKORLÁS 4) Kérd be az idei évet, és tárold el számként! 5) Kérd be, hogy melyik évben született a felhasználó, és tárold számként! 6) Kérd be a nevét és tárold el egy változóban! 7) Ezt követően üdvözöld a felhasználót, és közöld vele, hogy hány éves (az idei évből ki kell vonni a születési idejét):
  • 35. TÍPUSKONVERZIÓ – STRINGGÉ ALAKÍTÁS  Láttuk már, hogy két karakterlánc összeadható, és azt is láttuk, hogy a PRINT() utasításnak több kiírnivaló is átadható, amiket vesszővel választunk el típustól függetlenül. De vajon lehet olyat írni, hogy  Hogyne! Ilyenkor előbb „összeadódnak” a KARAKTERLÁNCOK, és ezt követően egyetlen karakterláncot kap meg a PRINT().  A probléma az INPUT() paranccsal van, mert ott nem működik a vesszős összefűzés, ami típusfüggetlen lenne.  Ha több dolgot szeretnél egyszerre megkérdezni, vagy
  • 36. FELADATOK 8) Tengeri mérföld: Kérjünk be egy kilométerben mért távolság-adatot a felhasználótól, és írjuk ki tengeri mérföldre átváltva! (Egy tengeri mérföld 1852 méter.) 9) Írj programot, amelyben egy a nevű változóban eltárolsz egy számot, egy b nevű változóban egy másikat. Majd kiírod a képernyőre az elvégzett művelettel együtt az a-b különbségét. 10)Négyzet: Kérjük be egy négyzet oldalának méretét, és írassuk ki, hogy az a-oldalú négyzet kerülte és területe mekkora!
  • 37. ELÁGAZÁS – AZ IF PARANCS  Hasznos programok írásához szinte mindig szükségünk van a feltételek ellenőrzésének képességére és arra, hogy ezek alapján megváltoztassuk a program viselkedését.  A feltételes utasítások adják meg nekünk ezt a képességet. A legegyszerűbb formája ennek az if utasítás: Az IF utasításnak 2 eredménye lehet: Az első eredmény akkor áll elő, ha az összehasonlítás IGAZ. A második pedig akkor, ha HAMIS. Szám > 0 A szám pozitív A szám negatív
  • 38. AZ IF SZINTAKTIKÁJA  Az if utasítás tartalmaz egy fejléc sort és egy törzset.  FEJLÉC: az if kulcsszóval kezdődik, amit egy igaz-hamis kifejezés követ, majd kettősponttal (:) zárul.  TÖRZS: A fejlécet követő behúzott sorok alkotják a törzset az összes ággal együtt. Az első nem behúzott sor jelenti a törzs végét.  ELSŐ BLOKK: Az első blokk összes utasítása sorban végre lesz hajtva, ha a Boolean kifejezés 2 if BOOLEAN-KIFEJEZÉS: 3 | UTASÍTÁS_1 #Végrehajtódik, ha a feltétel kiértékelése igaz értéket ad 4 else: 5 | UTASÍTÁS_2 #Végrehajtódik, ha a feltétel kiértékelése hamis értéket ad fejléc törzs
  • 39. AZ IF SZINTAKTIKÁJA  ELSE ÁG: else utasítás, melyet (:) követ  MÁSODIK BLOKK: Az első utasításblokk egésze ki lesz hagyva, ha a logikai kifejezés FALSE értékű, és ezek helyett az else alatti összes behúzott sor hajtódik végre.  A két utasításblokk közül tehát pontosan az egyik hajtódik végre, és ezután a vezérlés a 2 if BOOLEAN-KIFEJEZÉS: 3 | UTASÍTÁS_1 #Végrehajtódik, ha a feltétel kiértékelése igaz értéket ad 4 else: 5 | UTASÍTÁS_2 #Végrehajtódik, ha a feltétel kiértékelése hamis értéket ad fejléc törzs
  • 40. IF FAJTÁI  Egyágas elágazás: nem írjuk meg az else-ágat, és így csak a TRUE-ág parancsait hajtja végre.  Láncolt feltételes elágazás: több if parancs összefűzésével több kimenetet is tudunk kezelni, ahogy az Excel-ben is csináltuk. A fejlécet és az első blokkot válto- zatlanul megírjuk. Az ELSE helyett ELSE IF (rövidítve ELIF) ágat írunk, és az Excel-hez hasonlóan itt is a végén csak 1 db hamis, ELSE ág lesz.
  • 41. FELADATOK 12)Írjunk programot, ami bekér egy számot, és vizsgálat után kiírja, hogy pozitív, vagy negatív-e a szám. 13)Az előző programot javítsuk egy 3. lehetőséggel, ha nullát írna be a felhasználó, akkor arra írja ki, hogy nulla. 14)Készíts egy programot, ami bekér egy számot a felhasználótól, majd kiírja, hogy a megadott szám páros-e vagy páratlan. [HELP] A maradékos osztás segít! Mennyivel kell elosztani a számot
  • 42. FELADATOK 15)Kérdezd meg a felhasználótól, hogy hányadik lett a versenyen! Ha benne van az első háromban, akkor írd ki, hogy “dobogós”! [HELP] Összetett feltételt AND operátorral is tudsz csinálni, ahogy Access-ben tanultuk, de a Python könnyített feltételeket is megért: 0<x<4. Csak az if-sort kell megírni – egyágas elágazás. 16)Vezess be egy változót, és adj neki értéket 1-10 között! Kérj be a felhasználótól egy tippet! Ha eltalálta, akkor dicsérd meg! Ha nem, akkor ne
  • 43. VÉLETLENSZÁM-GENERÁTOR  Meglehetősen unalmas lenne, ha a programunk mindig csak a hetes számra tudna gondolni. De szerencsére létezik módszer véletlen számok előállítására.  A random.randint (random int = integer, azaz véletlen egész) a megfelelő utasítás, de használatához be kell töltenünk a random nevű modult a program elején.
  • 44. FELADATOK 17)Kérj be a felhasználótól egy tetszőleges szót! Aztán kérd tőle ugyanazt a szót még egyszer! Ha nem egyezik meg a két beírás, akkor írd neki, hogy téves a jelszó, a jelszóváltoztatás sikertelen. Egyébként a belépést engedélyezheted számára. 18)Állíts elő két véletlen számot 1-100 között, majd az input parancsba belefűzve a számokat, kérdezd meg a felhasználótól azok összegét! Ha helyesen válaszol, akkor dicsérd meg! Ha nem, akkor mondd neki, hogy még gyakoroljon. [HELP] Az input parancsba + jellel tudsz változót
  • 45. FELADATOK 19)Írj olyan programot, amelyik bekér két csapatnevet és két pontszámot, majd kiírja a mérkőzés eredményét és a nyertest is. 20) ...
  • 47. WHILE-CIKLUS – A FELTÉTELES  A ciklus valamilyen ismétlődő dolgot jelent. Gondolhatunk pl.: holdciklusra, választási ciklusra, árapályciklusra.  Mi egy olyan programrészletet értünk rajta, amely valahányszor megismétlődik.  Szintaktikája hasonló az if utasításhoz:  Fejléce: WHILE (amíg teljesül…) + BOOLEAN-kifejezés  Ciklusmag: beljebb kezdődik, és tartalmazza a
  • 48.  A != helyett milyen feltétellel érhetjük el ugyanezt az eredményt?  Hogyan változik a program kimenete, ha a ciklusmag két sorát felcseréljük?  Ha a felcserélt sorokkal is szeretnénk a számokat 1-től 100-ig kiírni, mit kell még módosítani a
  • 49.  A ciklusba való belépésnek feltétele van – csak akkor lépünk be a ciklusba, ha ez a feltétel teljesül.  A ciklusmag végét követően a program futtatása visszatér a fejlécbe, és kezdi elölről a ciklust.  A feltételt minden ismétlődéskor újra meg újra megvizsgálja a Python, és ha nem teljesül, akkor nem megy be a ciklusba, hanem utána folytatja a kód végrehajtását.  Fontos, hogy a while-hurok a fejléc logikai kifejezését előbb teszteli, mielőtt bármi más megtörténik. Amint hamis a kiértékelés ered- ménye, akkor a ciklusmag nem fut le.
  • 51. FELADATOK 23) Írj egy programot, amely kiírja a páros számokat 1 és 100 között! 24) Írj egy programot, amely csökkenő sorrendben írja ki a számokat 1 és 100 között! 25) Írj egy programot, amely kiírja a páratlan számokat csökkenő sorrendben 1 és 100 között! 26) Írj egy programot, amely a felhasználó által meghatározott alkalommal írja ki a bekért szöveget! 27) Írj egy programot, amely a felhasználótól páros számot kér be. Amennyiben a megadott szám páratlan, újra és újra megtörténik az adatbekérés mindaddig, amíg végül páros
  • 52. BOOL (LOGIKAI) ADATTÍPUS A CIKLUSBAN 29) Írj számkitalálós programot! Véletlenszámra gondol a gép 1-10 között. Addig tippelhessünk, amíg el nem találjuk. Próbáld ki egy új változóval! 30) Fejleszd az előző programod , hogy csak 3x próbálhassa
  • 53. FELADATOK Ciklussal meg tudunk oldani egyenleteket próbálgatással. 32) Oldjuk meg a 3x + 2 = 59 egyenletet a pozitív egészek halmazán! 33) Oldjuk meg a –x2+6x-9 = 0 egyenletet a pozitív egészek halmazán! 34) Írj pénzfeldobás-szimulátort! Írja ki, hogy fejet vagy írás dobott-e, és ajánlja fel, hogy dob újat! Használd a véletlenszám-generátort! Kipróbálhatod a randint utótag helyett a choice(['fej', 'írás']) -t is. 35) Fejleszd az előző programot tovább! Automatikusan
  • 54. FOR-CIKLUS – A LÉPTETŐ  Bejáró (léptető) ciklusként lehet jellemezni.  Működését a kifejezésben megadott értékek határozzák meg, például azt hogy hányszor fusson le a ciklusmag.  Szintaktikája hasonló az előzőleg tanultakhoz:  Fejléce: for i in range(kezdőérték, végérték, lépés)
  • 55.
  • 56.  Mi van, ha például az a feladatod, hogy tárold a programod-ban az összes telefonszámot, amit felhívtál? Vagy az összes meccseredményt a kedvenc sportágad múlt hetéből? Vagy az összes könyved címét? Vagy az összes osztálytársad, kedvenc mesehősöd nevét? Vagy valami ilyesmit? És ezekkel később dolgozni is akarsz.  Azt tudjuk, hogy változókban szokás tárolni a bekért adatokat. De ezek egyre többen lesznek. Mondjuk írsz is rá programot: A LISTA - AZ ÖSSZETARTOZÓ ADATOK KEZELÉSE
  • 57.  A lista egy adatszerkezet, vagy idegen szóval adatstruktúra.  Az adatszerkezetek arra valók, hogy több, egymással számunkra összefüggő adatot tároljunk bennük.  A Python nyelvben a lista jele a szögletes zárójel. pl.: mesehősök[ ]  A listáknak érdemes többes számú főnevet névül adni: lovak, játékosok, hónapok.  A listának a létrehozása pillanatában is adhatunk értéket, de a későbbiekben is módunkban áll újabb elemeket fűzni hozzá. A LISTA - AZ ÖSSZETARTOZÓ ADATOK KEZELÉSE
  • 58. A LISTA TULAJDONSÁGAI  Megtartja az adatok sorrendjét  Nem kell egyforma típusú adatoknak lenniük egy listán belül  Minden eleme sorszámot kap nullától kezdődően!! Ennek megfelelően az „n”-elemű lista utolsó eleme az „n-1”. sorszámú.  Létrehozása legegyszerűbben az elemek szögletes zárójelbe való felsorolása.  A lista elemeinek kiíratására a print() helyett a .join(listanév) tagfüggvényt, más szóval metódust
  • 59. FELADATOK 38)Kérd be a felhasználótól a kedvenc zenei előadói nevét, amíg üres Entert nem üt, és tárold az eredményt listában! 39)Az előző programot módosítsd úgy, hogy a kedvenc számok címét is kérd be úgy, hogy a kérdésbe belefoglalja, hogy melyik előadóról van szó. És tárold őket egy másik listában!
  • 60. LISTAELEMEK ELÉRÉSE INDEX- OPERÁTORRAL  A lista adatok valamilyen módon rendezett gyűjteménye.  Azokat az értékeket, amelyek a listát alkotják elemeknek nevezzük.  Ahogyan már korábban is használtuk, a változókhoz és a listákhoz tartozó listaelemeket paraméterként hozzárendelhetjük a függvényekhez.  A listaelemeket külön-külön is elérhetjük a listán belül a sorszámo-zásuknak köszönhetően az index- operátorral: [ ]. Ez egy tartomány: [2; 4) Ez egy művelet, értéke 3
  • 61. A BEJÁRÓ FOR-CIKLUS  Használhatjuk a for-ciklusban a ciklusváltozót lista- indexként, ezt nevezzük bejárásnak:  Vagy másképp: A ciklus általában for valami in valamik alakú sorral kezdődik. A valamik a bejárható objektum, amiben több dolog van, ezért is többesszámú főnév a neve. A valami az a valamik épp aktuális eleme, és bejárónak, más szóhasználattal ciklusváltozónak nevezzük. Az előző esetünkben lehetne for gyümi in gyümik.
  • 62. A LISTA-MŰVELETEK I. A lista hossza:  A lista elemeinek a számát megadó függvény:  A lista elemeinek a száma != az utolsó indexű elemmel  Ha indexet használunk a lista eléréséhez, célszerűbb, ha így használjuk az utolsó elemre való hivatkozáshoz: egyszerűbben: II. Lista tagság: Az in és a not in boolean típusú operátorok, amelyek megvizsgálják egy elem
  • 63. 41)Megadunk egy listát: lovak = [‘Ráró’, ‘Baró’, ‘Tipró’, ‘Karó’]. Kérd be egy színek nevű listába, hogy melyik ló milyen színű! 42)Kérd be az éppen célba érkező lóversenyzők nevét, és tárold el egy listában. Addig kérd, amíg üres Enter-t nem nyom. A bevitel végén írasd ki a célba érkezőket vesszővel elválasztva, valamint írasd ki az első, a második, a harmadik, és az utolsó helyezettek nevét külön-külön sorban. 43)Emeld négyzetre az xs = [1,2,3,4,5] lista minden FELADATOK
  • 64. A LISTA-MŰVELETEK  A + operátor összefűzi a listákat:  A * operátor megismétli a listát a megadott számszor:  A : szeletelő operátor részlistákat hoz létre, vagy klónozni is tud:  Törlés listából az index alapján: del vagy üres értékadás
  • 65. Használatuk: MÓDOSÍTANDÓ_LISTA.METÓDUS(PARAMÉTER)  .append(elem) -metódus: az új elemet a lista végére fűzi  .insert(pozíció, elem) -metódus: a megadott helyre új elem  .extend(lista) -metódus: egy lista másik listával való bővítése  .remove(elem) -metódus: kiveszi a listából azt, amit a zárójelben megadunk, pontosabban annak az LISTA-MŰVELETEK METÓDUSOKKAL
  • 66. LISTA MÓDOSÍTÁSA  Az értékadás bal oldalán az index operátor használatával az egyik elemet módosíthatjuk. Ezt nevezzük indexelt értékadásnak.  A : szeletelő operátorral módosíthatunk teljes részlistát:  Hozzáadhatunk a listához elemeket úgy, hogy beszúrjuk őket egy üres szeletre a kívánt helyen:
  • 67. 44)Írj olyan programot, amely egy-egy listába bekéri három-három leves, főétel és desszert nevét, majd kiír három menüt, mindegyikben egy levessel, főétellel és desszerttel! 45)Szimuláljunk száz kockadobást, és az eredményeket tároljuk listában! A program számolja meg, hogy hányszor lett hatos! 46)Az előző feladatban számolja meg azt is, hogy hány helyen volt úgy, hogy ötöst dobott a hatos előtt? [HELP] Mivel index alapján akarunk vizsgálni, ezért FELADATOK
  • 68. 47)Állítsunk elő harmincelemű, nulla és kilenc közötti véletlen számokat tartalmazó listát! A számok egy útvonal magassági adatait jelentik. Meredek az útszakasz, ha legalább kettővel magasabb az aktuális hely, mint az előző. Hány meredek szakasz van az úton? 48)És visszafelé? 49)A programunk elején adjunk meg két listát: az első tartalmazzon öt filmcímet, a második a filmek egy-egy főszereplőjét! Az első filmhez az első szereplő tartozik, a másodikhoz a második, és így tovább. Írjuk FELADATOK
  • 69. Művelet Mit csinál String Lista indexálás szöveg[szám] visszaadja a [szám] indexű elemet   szeletelés szöveg [2:4] visszaadja az objektum egy részét   összeadás + egymás mellé helyezi a két objektumot, egy harmadikat alakítva ki belőlük   len() Az objektum hosszát állapítja meg   .count(elem) megszámolja, hogy hányszor van az adott elem az objektumban   .append(elem) az objektum végére biggyeszt valamit   .extend(lista) az objektumot egy másik objektummal bővíti   .remove(elem) elvesz egy elemet az objektumból   .insert(poz, elem) új elemet illeszt az objektumba   STRING VAGY LISTA
  • 70. FELADATOK Mindegyik feladathoz a szöveg = “kenyeret ettem meggyel” karakterláncot használd! 50)Számold meg, hány ’e’ betű van benne! 51)Írasd ki fordítva! 52)Írasd ki minden 3. karakterét! 53)Találjunk ki együtt megoldandó feladatokat!
  • 71. ELEMI PROGRAMOZÁSI TÉTELEK  Megfigyelések alapján kategorizálni lehet a programozási feladatokat, azaz visszavezethetők néhány alapproblémára.  Az alapproblémákra létezik megoldási sablon.  Az ilyen, egy-egy feladattípus megoldását nyújtó algoritmusokat nevezzük PROGRAMOZÁSI TÉTELNEK.  Nem, nem kell őket bizonyítani, ez nem matekóra (még szerencse…)
  • 72. SOROZATSZÁMÍTÁS: ÖSSZEGZÉS, SZORZÁS  Bejárható adattípus elemeivel való műveletek