Python bevezető foglalkozás program, programozás, programnyelvek a Python nyelv és az IDLE környezet változók és adattípusok konzol input és output (input(), print()) vezérlési szerkezetek (if/else, while)
Mi a program? utasítások sorozata valamilyen feladat megoldására amit egy számítógép hajt végre 2
Programozás 1. feladat megértése 2. tervezés 3. kódolás 4. tesztelés 5. hibák javítása 6. továbbfejlesztés A programozás során a feladat megoldását a gép által egyértelműen végrehajtható, apró lépésekre kell bontani! 3
Páros számok Utasítások:... változó értéke legyen:...!... változó értéke változzon ennyivel:...! Ha... akkor folytasd a...-dik sortól! Írd ki... változó értékét! Stop. Készíts programot! Ezen utasítások segítségével írj programot, mely kiírja a páros számokat 1-től 100- ig! Példa: 1 X változó értéke legyen: 12! 2 T1 változó értéke legyen: Ez egy egyjegyű szám.! 3 T2 változó értéke legyen: Ez egy többjegyű szám.! 4 Ha X > 9 akkor folytasd a 7-dik sortól! 5 Írd ki T1 változó értékét! 6 Stop. 7 Írd ki T2 változó értékét! 8 Stop. Hogy működik? Elemezd ezt a példát úgy, hogy lépésenként követed a program futását! 4
Program: 1 X változó értéke legyen: 2! 2 Írd ki X változó értékét! 3 X változó értéke változzon ennyivel: 2! 4 Ha X < 101 akkor folytasd a 2-dik sortól! 5 Stop. 5
Program: 1 X változó értéke legyen: 2! 2 Írd ki X változó értékét! 3 X változó értéke változzon ennyivel: 2! 4 Ha X < 101 akkor folytasd a 2-dik sortól! 5 Stop. Változók: X = 2 6
Program: 1 X változó értéke legyen: 2! 2 Írd ki X változó értékét! 3 X változó értéke változzon ennyivel: 2! 4 Ha X < 101 akkor folytasd a 2-dik sortól! 5 Stop. Változók: X = 2 2 7
Program: 1 X változó értéke legyen: 2! 2 Írd ki X változó értékét! 3 X változó értéke változzon ennyivel: 2! 4 Ha X < 101 akkor folytasd a 2-dik sortól! 5 Stop. Változók: X = 4 2 8
Program: 1 X változó értéke legyen: 2! 2 Írd ki X változó értékét! 3 X változó értéke változzon ennyivel: 2! 4 Ha X < 101 akkor folytasd a 2-dik sortól! 5 Stop. Változók: X = 4 2 9
Program: 1 X változó értéke legyen: 2! 2 Írd ki X változó értékét! 3 X változó értéke változzon ennyivel: 2! 4 Ha X < 101 akkor folytasd a 2-dik sortól! 5 Stop. Változók: X = 4 2 4 10
Program: 1 X változó értéke legyen: 2! 2 Írd ki X változó értékét! 3 X változó értéke változzon ennyivel: 2! 4 Ha X < 101 akkor folytasd a 2-dik sortól! 5 Stop. Változók: X = 6 2 4 11
Program: 1 X változó értéke legyen: 2! 2 Írd ki X változó értékét! 3 X változó értéke változzon ennyivel: 2! 4 Ha X < 101 akkor folytasd a 2-dik sortól! 5 Stop. Változók: X = 6 2 4 12
Program: 1 X változó értéke legyen: 2! 2 Írd ki X változó értékét! 3 X változó értéke változzon ennyivel: 2! 4 Ha X < 101 akkor folytasd a 2-dik sortól! 5 Stop. Változók: X = 6 2 4 6 13
Program: 1 X változó értéke legyen: 2! 2 Írd ki X változó értékét! 3 X változó értéke változzon ennyivel: 2! 4 Ha X < 101 akkor folytasd a 2-dik sortól! 5 Stop. Változók: X = 100 80 82 84 86 88 90 92 94 96 98 100 14
Program: 1 X változó értéke legyen: 2! 2 Írd ki X változó értékét! 3 X változó értéke változzon ennyivel: 2! 4 Ha X < 101 akkor folytasd a 2-dik sortól! 5 Stop. Változók: X = 102 80 82 84 86 88 90 92 94 96 98 100 15
Program: 1 X változó értéke legyen: 2! 2 Írd ki X változó értékét! 3 X változó értéke változzon ennyivel: 2! 4 Ha X < 101 akkor folytasd a 2-dik sortól! 5 Stop. Változók: X = 102 80 82 84 86 88 90 92 94 96 98 100 16
Program: 1 X változó értéke legyen: 2! 2 Írd ki X változó értékét! 3 X változó értéke változzon ennyivel: 2! 4 Ha X < 101 akkor folytasd a 2-dik sortól! 5 Stop. Változók: X = 102 80 82 84 86 88 90 92 94 96 98 100 17
Programozási hibák Program: 1 X változó értéke legyen: 2! 2 Írd ki X változó értékét! 3 X változó értéke változzon ennyivel: 2! 4 Ha X < 101 akkor folytasd a 3-dik sortól! 5 Stop. Mit ír ki? Vizsgáld meg ezt a programot! Mit ír ki? Program: 1 X változó értéke legyen: 2! 2 Írd ki X változó értékét! 3 X változó értéke változzon ennyivel: 2! 4 Ha X > 0 akkor folytasd a 2-dik sortól! 5 Stop. Mit csinál ez a program? Vizsgáld meg ezt a programot! Hogyan viselkedik? Mit ír ki? 18
Programozási nyelvek programok írására szolgáló mesterséges nyelvek utasításkészlet ( szótár ) szintaktikai szabályok ( nyelvtan ) sokféle programozási nyelv létezik pl. Scratch, Python, JavaScript, PHP, Java, C, Ada... 19
A Python nyelv és az IDLE környezet Python könnyen elsajátítható és használható sok előre megírt modult tartalmaz modul = hasznos programocskák halmaza nagy cégek is használják Google, Pixar, NASA,... IDLE (Integrated Development and Learning Environment) integrált fejlesztő és tanuló környezet alkalmas Python programok írására és futtatására 20
IDLE ablakok File New File vagy CTRL-N terminálablak (ebben fut a program) kódablak (ebben írjuk a programot) 21
IDLE ablakok terminálablak (ebben fut a program) Run Run Module vagy F5 kódablak (ebben írjuk a programot) Futtatás előtt az IDLE szeretné elmenteni a programot. Hozz létre egy könyvtárat, amibe Python programjaidat mented! A Python programok neve bármi lehet, a kiterjesztésük általában.py (például HelloWorld.py) 22
Kisérletezz! Másold le ezeket a programokat és próbáld őket futtatni! Mit tapasztalsz? 1. Minden print() új sorba ír. 2. Nem csak szöveget, hanem számot is ki lehet íratni. 3. Ha a print() bemenete egy kifejezés, akkor azt előbb kiértékeli a gép és az eredményt írja ki. 4. Szövegek összeadása az összefűzésüket jelenti. 5. Hoppá! 1 2 3 4 5 print("üdv mindenkinek!") print("pythonban programozni jó.") print(12) print(12 + 24) nev = "Andris" print("hello " + nev + "!") print("pythonban programozni jó.") nev = "Andris" kor = 12 print(nev + " " + kor + " éves.") 23
Változók egy változóra gondolhatsz úgy, mint egy névvel ellátott tárhelyre a változóban valamilyen értéket tárolhatsz (pl. egy számot vagy egy szöveget) szam = 6 print(szam) masikszam = 2*szam print(masikszam) szam = 18 print(szam) a tárolt értéket a változó nevének leírásával hívhatod elő a változó értékét bármikor felülírhatod 24
Kisérletezz! Gyors kisérletezéshez használhatod a terminál ablakot is! Próbáld ki! Hozz létre egy változót, legyen a neve A és az értéke 2! Írd le a változó nevét és nyomd meg az ENTER-t! Mit tapasztalsz? Hozz létre egy másik változót, ennek legyen a neve B és az értéke 4! Írd le a változó nevét és nyomd meg az ENTER-t! Mit tapasztalsz? Most írd le, hogy A+B és nyomd meg az ENTER-t! Mit tapasztalsz? Most írd le, hogy 2*(A+B) és nyomd meg az ENTER-t! Van egy számológéped! Hozz létre egy harmadik változót, ennek legyen a neve C és az értéke A*B! Írd le a változó nevét és nyomd meg az ENTER-t! Mit tapasztalsz? 25
Adattípusok egyszerű beépített adattípusok egész szám (integer) tört (float) szöveg (string): "..." vagy '...' igaz/hamis (Boolean): True, False a = 5 b = 6.5 c = "szöveg" d = 'ez is szöveg' e = True c = -10 egy változó típusát nem kell előre megmondani, akkor dől el, amikor értéket kap! 26
Típus hiba szöveg (str) egész (int) nev = "Andris" kor = 12 print(nev + " " + kor + " éves.") print(nev + " " + kor + " éves.") TypeError: must be str, not int 27
Típus átalakítás (konverzió) nev = "Andris" kor = 12 print(nev + " " + str(kor) + " éves.") adattípusok közötti átalakítást végezhetsz az str() és az int() átalakító függvényekkel: str(): egész vagy tört szám szöveg int(): szöveg egész szám 28
Andris és apa együttes kora andris = 12 apa = "41" print("andris " + (andris) + " éves.") print("apa " + apa + " éves.") egyutt = andris + (apa) print("andris és apa együtt " + (egyutt) + " éves.") Egészítsd ki ezt a programot! Írd be a helyére a megfelelő átalakító függvény nevét (int vagy str), hogy a program jól működjön! 29
Andris és apa együttes kora andris = 12 apa = "41" print("andris " + str(andris) + " éves.") print("apa " + apa + " éves.") egyutt = andris + int(apa) print("andris és apa együtt " + str(egyutt) + " éves.") 30
Konzol input az input() függvénnyel bekérhetsz valamilyen adatot a felhasználótól nev = input("hogy hívnak? ") kor = input("hány éves vagy? ") print("hello " + nev + "!") print("biztos jó " + kor + " évesnek lenni.") az input() függvény bemeneteként (a zárójelek között) megadhatsz egy szöveget, amit a gép kiír a képernyőre az input() visszatérési értéke a felhasználó által a konzolon beírt adat, amit egy változóban is tárolhatsz vigyázat: a visszatérési érték szöveg (string) típusú! 31
A téglalap kerülete Írj programot! Írj programot, mely bekéri egy téglalap két oldalának hosszát a felhasználótól, majd kiszámolja és kiírja a téglalap kerületét! Ha a téglalap oldalai a és b hosszúak, akkor kerülete 2*(a+b) alapműveletek számokkal: összeadás: + szorzás: * kivonás: osztás: / 32
A téglalap kerülete a = int(input("a téglalap egyik oldalának hossza: ")) b = int(input("a téglalap másik oldalának hossza: ")) print("a téglalap kerülete: " + str(2*(a+b))) a = int(input("a téglalap egyik oldalának hossza: ")) szöveg input("a téglalap egyik oldalának hossza: ") egész szám int( ) a 33
Feltételes elágazás egy programrész végrehajtását feltételhez kötheted az if utasítással (az if jelentése magyarul ha) az if párja az else (jelentése egyébként); az else utáni programrész akkor hajtódik végre, ha az if feltétele nem teljesül Figyeld meg a behúzásokat! szam = int(input("írj be egy számot! ")) if (szam > 100): print("ez egy nagy szám.") else: print("ez egy kicsi szám.") Ügyelj a kettőspontra! 34
Feltételes elágazás Az azonos méretű behúzással rendelkező, egymás utáni sorok egy összetartozó blokkot alkotnak if <feltétel>: else: A <feltétel> egy kifejezés, melynek értéke igaz (True) vagy hamis (False) lehet Ez az utasításblokk hajtódik végre ha a <feltétel> igaz Ez az utasításblokk hajtódik végre ha a <feltétel> hamis 35
Feltételes elágazás if <feltétel>: igen <feltétel> igaz? nem else: 36
Többszörös elágazás Módosítsd ezt a programot! Módosítsd ezt a programot úgy, hogy három esetet különböztessen meg: ha a szám nagyobb, mint 100, akkor írja ki, hogy ez egy nagy szám, ha a szám kisebb, mint 10, akkor írja ki, hogy ez egy kicsi szám, egyébként írja ki, hogy a szám se nem kicsi, se nem nagy! szam = int(input("írj be egy számot! ")) if (szam > 100): print("ez egy nagy szám.") else: print("ez egy kicsi szám.") 37
Többszörös elágazás szam = int(input("írj be egy számot! ")) if (szam > 100): print("ez egy nagy szám.") else: if (szam < 10): print("ez egy kicsi szám.") else: print("ez egy se nem kicsi, se nem nagy szám.") 38
Ismétlés Írj programot! Írj programot, mely bekér egy 100-nál nagyobb számot a felhasználótól! Ha a szám valóban nagyobb, mint 100, akkor köszönje meg a számot, de ha nem, akkor ismét próbáljon meg bekérni egy 100-nál nagyobb számot! 3 sikertelen próbálkozás után a program írja ki, hogy Feladom és fejezze be a futást! 39
Ismétlés szam = int(input("írj be egy 100-nál nagyobb számot! ")) if (szam > 100): print("köszönöm!") else: szam = int(input("írj be egy 100-nál nagyobb számot! ")) if (szam > 100): print("köszönöm!") else: szam = int(input("írj be egy 100-nál nagyobb számot! ")) if (szam > 100): print("köszönöm!") else: print("feladom!") 40
Nem adom fel, míg nem robbanok szét... Mi a helyzet, ha nem adjuk fel, hanem addig kérjük a számot, amíg 100-nál nagyobbat nem kapunk? erre használhatjuk a while ciklust (a while jelentése amíg): szam = 0 while (szam < 100): szam = int(input("írj be egy 100-nál nagyobb számot! ")) print("köszönöm!") 41
Ismétlés while ciklussal while <feltétel>: A <feltétel> egy kifejezés, melynek értéke igaz (True) vagy hamis (False) lehet Itt is a behúzás jelzi a while-hoz tartozó, ismételendő utasításblokkot Ez az utasításblokk mindaddig újra és újra végrehajtódik amíg a <feltétel> igaz 42
Ismétlés while ciklussal while <feltétel>: igen <feltétel> igaz? nem 43
Gondoltam egy számra! Házi feladat Olyan programot kezdtünk el írni, mely kisorsol egy véletlen számot 1 és 100 között, majd arra kéri a felhasználót, hogy találja ki a sorsolt számot. A program úgy segíti a felhasználót, hogy annak minden tippje után kiírja, hogy a sorsolt szám nagyobb vagy kisebb, mint a felhasználó tippje. A program mindaddig kéri a felhasználó tippjeit, amíg a felhasználó ki nem találja a sorsolt számot. Egészítsd ki a hiányos programot! 44
Gondoltam egy számra! from random import randint szam = randint(1, 100) print("gondoltam egy számra 1 és 100 között.")... while (...): tipp =... if (...): print("nem, ennél kisebbre gondoltam.") else: if (...): print("nem, ennél nagyobbra gondoltam.") else: print("igen, eltaláltad!") 45
Összefoglalás program, programozás, programnyelvek a Python nyelv és az IDLE környezet változók és adattípusok: egész, szöveg, igaz/hamis műveletek szövegekkel és számokkal típus átalakító függvények: int(), str() konzol input/output: input(), print() feltételes elágazás: if, elif, else ismétlés: while 47
További anyagok on-line: https://www.python.org/ https://docs.python.org/3/ https://www.python.org/downloads/ http://python.hu/ http://python.hu/magyar-nyelvu-dokumentaciok http://python.hu/peldaprogramok http://harp.pythonanywhere.com/python_doc/tutorial/index.html 48
További anyagok könyvek Gérard Swinnen, Tanuljunk meg programozni Python nyelven, 2005 http://mek.oszk.hu/08400/08435/08435.pdf Koós Antal, Python a gépben, TypoTeX 2016 http://www.interkonyv.hu/konyvek/koos_antal_python_a_gepben 49
Készítette: Buttyán Levente Levente.Buttyan@gmail.com CoderDojo Szentendre 2017 50