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) ...
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.
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…)