Python bevezető foglalkozás
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)
Python bevezető foglalkozás
Mi a program? • utasítások sorozata • valamilyen feladat megoldására • amit egy számítógép hajt végre
2
Python bevezető foglalkozás
Programozás 1. 2. 3. 4. 5. 6.
feladat megértése tervezés kódolás tesztelés hibák javítása 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
Python bevezető foglalkozás
Páros számok Készíts programot! 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.
Példa: 1| 2| 3| 4| 5| 6| 7| 8|
Ezen utasítások segítségével írj programot, mely kiírja a páros számokat 1-től 100ig!
X változó értéke legyen: 12 ! T1 változó értéke legyen: Ez egy egyjegyű szám. ! T2 változó értéke legyen: Ez egy többjegyű szám. ! Ha X > 9 akkor folytasd a 7-dik sortól! Írd ki T1 változó értékét! Stop. Írd ki T2 változó értékét! 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
Python bevezető foglalkozás
Program: 1| X változó értéke 2| Írd ki X változó 3| X változó értéke 4| Ha X < 101 akkor 5| Stop.
legyen: 2 ! értékét! változzon ennyivel: 2 ! folytasd a 2-dik sortól!
5
Python bevezető foglalkozás
Program: 1| X változó értéke 2| Írd ki X változó 3| X változó értéke 4| Ha X < 101 akkor 5| Stop.
legyen: 2 ! értékét! változzon ennyivel: 2 ! folytasd a 2-dik sortól!
Változók: X = 2
6
Python bevezető foglalkozás
Program: 1| X változó értéke 2| Írd ki X változó 3| X változó értéke 4| Ha X < 101 akkor 5| Stop.
legyen: 2 ! értékét! változzon ennyivel: 2 ! folytasd a 2-dik sortól!
Változók: X = 2
2
7
Python bevezető foglalkozás
Program: 1| X változó értéke 2| Írd ki X változó 3| X változó értéke 4| Ha X < 101 akkor 5| Stop.
legyen: 2 ! értékét! változzon ennyivel: 2 ! folytasd a 2-dik sortól!
Változók: X = 4
2
8
Python bevezető foglalkozás
Program: 1| X változó értéke 2| Írd ki X változó 3| X változó értéke 4| Ha X < 101 akkor 5| Stop.
legyen: 2 ! értékét! változzon ennyivel: 2 ! folytasd a 2-dik sortól!
Változók: X = 4
2
9
Python bevezető foglalkozás
Program: 1| X változó értéke 2| Írd ki X változó 3| X változó értéke 4| Ha X < 101 akkor 5| Stop.
legyen: 2 ! értékét! változzon ennyivel: 2 ! folytasd a 2-dik sortól!
Változók: X = 4
2 4
10
Python bevezető foglalkozás
Program: 1| X változó értéke 2| Írd ki X változó 3| X változó értéke 4| Ha X < 101 akkor 5| Stop.
legyen: 2 ! értékét! változzon ennyivel: 2 ! folytasd a 2-dik sortól!
Változók: X = 6
2 4
11
Python bevezető foglalkozás
Program: 1| X változó értéke 2| Írd ki X változó 3| X változó értéke 4| Ha X < 101 akkor 5| Stop.
legyen: 2 ! értékét! változzon ennyivel: 2 ! folytasd a 2-dik sortól!
Változók: X = 6
2 4
12
Python bevezető foglalkozás
Program: 1| X változó értéke 2| Írd ki X változó 3| X változó értéke 4| Ha X < 101 akkor 5| Stop.
legyen: 2 ! értékét! változzon ennyivel: 2 ! folytasd a 2-dik sortól!
Változók: X = 6
2 4 6
13
Python bevezető foglalkozás
Program: 1| X változó értéke 2| Írd ki X változó 3| X változó értéke 4| Ha X < 101 akkor 5| Stop.
legyen: 2 ! értékét! változzon ennyivel: 2 ! folytasd a 2-dik sortól!
Változók: X = 100
80 82 84 86 88 90 92 94 96 98 100
14
Python bevezető foglalkozás
Program: 1| X változó értéke 2| Írd ki X változó 3| X változó értéke 4| Ha X < 101 akkor 5| Stop.
legyen: 2 ! értékét! változzon ennyivel: 2 ! folytasd a 2-dik sortól!
Változók: X = 102
80 82 84 86 88 90 92 94 96 98 100
15
Python bevezető foglalkozás
Program: 1| X változó értéke 2| Írd ki X változó 3| X változó értéke 4| Ha X < 101 akkor 5| Stop.
legyen: 2 ! értékét! változzon ennyivel: 2 ! folytasd a 2-dik sortól!
Változók: X = 102
80 82 84 86 88 90 92 94 96 98 100
16
Python bevezető foglalkozás
Program: 1| X változó értéke 2| Írd ki X változó 3| X változó értéke 4| Ha X < 101 akkor 5| Stop.
legyen: 2 ! értékét! változzon ennyivel: 2 ! folytasd a 2-dik sortól!
Változók: X = 102
80 82 84 86 88 90 92 94 96 98 100
17
Python bevezető foglalkozás
Programozási hibák Program: 1| X változó értéke 2| Írd ki X változó 3| X változó értéke 4| Ha X < 101 akkor 5| Stop.
legyen: 2 ! értékét! változzon ennyivel: 2 ! folytasd a 3-dik sortól!
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 ír ki? Vizsgáld meg ezt a programot! Mit ír ki?
Mit csinál ez a program?
Vizsgáld meg ezt a programot! Hogyan viselkedik? Mit ír ki?
18
Python bevezető foglalkozás
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
Python bevezető foglalkozás
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
Python bevezető foglalkozás
IDLE ablakok
File New File vagy CTRL-N
terminálablak (ebben fut a program)
kódablak (ebben írjuk a programot)
21
Python bevezető foglalkozás
IDLE ablakok
Run Run Module vagy F5
terminálablak terminálablak
Futtatás előtt az IDLE szeretné elmenteni a programot. (ebbenfut futaaprogram) program) (ebben kódablak Hozz létre egy könyvtárat, amibe Python programjaidat mented! (ebben írjuk a programot) A Python programok neve bármi lehet, a kiterjesztésük általában .py (például HelloWorld.py)
22
Python bevezető foglalkozás
Kisérletezz! Másold le ezeket a programokat és próbáld őket futtatni! Mit tapasztalsz?
1
print("Üdv mindenkinek!") print("Pythonban programozni jó.")
2
print(12)
3
print(12 + 24)
4
nev = "Andris" print("Hello " + nev + "!") print("Pythonban programozni jó.")
5
nev = "Andris" kor = 12 print(nev + " " + kor + " éves.")
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á!
23
Python bevezető foglalkozás
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
Python bevezető foglalkozás
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
Python bevezető foglalkozás
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 b c d e c
= = = = = =
5 6.5 "szöveg" 'ez is szöveg' True -10
• egy változó típusát nem kell előre megmondani, akkor dől el, amikor értéket kap! 26
Python bevezető foglalkozás
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
Python bevezető foglalkozás
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
Python bevezető foglalkozás
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
Python bevezető foglalkozás
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
Python bevezető foglalkozás
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
Python bevezető foglalkozás
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: + – kivonás: –
– szorzás: * – osztás: / 32
Python bevezető foglalkozás
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: ")) input("A téglalap egyik oldalának hossza: ")
szöveg int(
egész szám
)
a 33
Python bevezető foglalkozás
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
Python bevezető foglalkozás
Feltételes elágazás A
egy kifejezés, melynek értéke igaz (True) vagy hamis (False) lehet
if :
Az azonos méretű behúzással rendelkező, egymás utáni sorok else: egy összetartozó blokkot alkotnak
Ez az utasításblokk hajtódik végre ha a igaz
Ez az utasításblokk hajtódik végre ha a hamis
35
Python bevezető foglalkozás
Feltételes elágazás if : igen
igaz?
nem
else:
36
Python bevezető foglalkozás
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
Python bevezető foglalkozás
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
Python bevezető foglalkozás
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
Python bevezető foglalkozás
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
Python bevezető foglalkozás
„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
Python bevezető foglalkozás
Ismétlés while ciklussal A egy kifejezés, melynek értéke igaz (True) vagy hamis (False) lehet
while : 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 igaz
42
Python bevezető foglalkozás
Ismétlés while ciklussal
while : igen
igaz?
nem
43
Python bevezető foglalkozás
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
Python bevezető foglalkozás
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
Python bevezető foglalkozás
Ö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
Python bevezető foglalkozás
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
Python bevezető foglalkozás
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
Python bevezető foglalkozás
Készítette: Buttyán Levente [email protected] CoderDojo Szentendre 2017
50