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. feladat megértése
2. tervezés
3. kódolás
4. tesztelés
5. hibák javítása
6. továbbfejlesztés
3
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!
Python bevezető foglalkozás
Páros számok
4
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, hogylépésenként követed a program futását!
Python bevezető foglalkozás
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.
Python bevezető foglalkozás
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
Python bevezető foglalkozás
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.
2
Változók:X = 2
Python bevezető foglalkozás
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.
2
Változók:X = 4
Python bevezető foglalkozás
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.
2
Változók:X = 4
Python bevezető foglalkozás
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.
24
Változók:X = 4
Python bevezető foglalkozás
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.
24
Változók:X = 6
Python bevezető foglalkozás
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.
24
Változók:X = 6
Python bevezető foglalkozás
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.
246
Változók:X = 6
Python bevezető foglalkozás
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.
80828486889092949698100
Változók:X = 100
Python bevezető foglalkozás
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.
80828486889092949698100
Változók:X = 102
Python bevezető foglalkozás
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.
80828486889092949698100
Változók:X = 102
Python bevezető foglalkozás
17
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.
80828486889092949698100
Változók:X = 102
Python bevezető foglalkozás
Programozási hibák
18
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?
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
terminálablak(ebben fut a program)
IDLE ablakok
21
kódablak(ebben írjuk a programot)
File New Filevagy CTRL-N
Python bevezető foglalkozás
terminálablak(ebben fut a program)
terminálablak(ebben fut a program)
IDLE ablakok
22
kódablak(ebben írjuk a programot)
Run Run Modulevagy F5
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)
Python bevezető foglalkozás
Kisérletezz!
23
print("Üdv mindenkinek!")print("Pythonban programozni jó.")
nev = "Andris"print("Hello " + nev + "!")print("Pythonban programozni jó.")
nev = "Andris"kor = 12print(nev + " " + kor + " éves.")
print(12)
print(12 + 24)
Másold le ezeket a programokat és próbáld őket futtatni! Mit tapasztalsz?
1
2
3
4
5
1. Minden print() új sorba ír.
2. Nem csak szöveget, hanem számotis 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 össze-fűzésüket jelenti.
5. Hoppá!
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)
• 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
szam = 6print(szam)masikszam = 2*szamprint(masikszam)szam = 18print(szam)
Python bevezető foglalkozás
Kisérletezz!
25
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?
Gyors kisérletezéshez használhatod a terminál ablakot is! Próbáld ki!
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
• egy változó típusát nem kell előre megmondani, akkor dől el, amikor értéket kap!
26
a = 5b = 6.5c = "szöveg"d = 'ez is szöveg'e = Truec = -10
Python bevezető foglalkozás
Típus hiba
27
nev = "Andris"kor = 12print(nev + " " + kor + " éves.")
print(nev + " " + kor + " éves.")TypeError: must be str, not int
szöveg (str) egész (int)
Python bevezető foglalkozás
Típus átalakítás (konverzió)
• 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
nev = "Andris"kor = 12print(nev + " " + str(kor) + " éves.")
Python bevezető foglalkozás
Andris és apa együttes kora
29
andris = 12apa = "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!
Python bevezető foglalkozás
Andris és apa együttes kora
30
andris = 12apa = "41"print("Andris " + str(andris) + " éves.")print("Apa " + apa + " éves.")egyutt = andris + int(apa)print("Andris és apa együtt " + str(egyutt) + " éves.")
Python bevezető foglalkozás
Konzol input• az input() függvénnyel bekérhetsz valamilyen adatot a
felhasználótól
• 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
nev = input("Hogy hívnak? ")kor = input("Hány éves vagy? ")print("Hello " + nev + "!")print("Biztos jó " + kor + " évesnek lenni.")
Python bevezető foglalkozás
A téglalap kerülete
alapműveletek számokkal:
– összeadás: +
– kivonás: –
– szorzás: *
– osztás: /
32
Í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)
Python bevezető foglalkozás
A téglalap kerülete
33
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: "))
int( )
input("A téglalap egyik oldalának hossza: ")
a
szöveg
egész szám
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
34
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!Figyeld meg
a behúzásokat!
Python bevezető foglalkozás
Feltételes elágazás
35
if <feltétel>:
else:
Ez az utasításblokkhajtódik végre haa <feltétel> igaz
Ez az utasításblokkhajtódik végre haa <feltétel> hamis
Az azonos méretűbehúzással rendelkező,
egymás utáni sorokegy összetartozóblokkot alkotnak
A <feltétel> egy kifejezés,melynek értéke igaz (True) vagy hamis (False) lehet
Python bevezető foglalkozás
Feltételes elágazás
36
if <feltétel>:
else:
<feltétel> igaz?igen nem
Python bevezető foglalkozás
Többszörös elágazás
37
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.")
Python bevezető foglalkozás
Többszörös elágazás
38
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.")
Python bevezető foglalkozás
Ismétlés
39
Í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!
Python bevezető foglalkozás
Ismétlés
40
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!")
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 whilejelentése amíg):
41
szam = 0while (szam < 100):
szam = int(input("Írj be egy 100-nál nagyobb számot! "))print("Köszönöm!")
Python bevezető foglalkozás
Ismétlés while ciklussal
42
while <feltétel>:
Ez az utasításblokkmindaddig újra és újravégrehajtódik amíg a <feltétel> igaz
Itt is a behúzás jelzia while-hoz tartozó,
ismételendőutasításblokkot
A <feltétel> egy kifejezés,melynek értéke igaz (True) vagy hamis (False) lehet
Python bevezető foglalkozás
Ismétlés while ciklussal
43
while <feltétel>: <feltétel> igaz?igen nem
Python bevezető foglalkozás
Gondoltam egy számra!
44
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!
Python bevezető foglalkozás
Gondoltam egy számra!
45
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!")
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
48
http://harp.pythonanywhere.com/python_doc/tutorial/index.html
Python bevezető foglalkozás
További anyagok
• könyvek
– Gérard Swinnen, Tanuljunk meg programozni Python nyelven, 2005
– Koós Antal, Python a gépben, TypoTeX 2016
49
http://mek.oszk.hu/08400/08435/08435.pdf
http://www.interkonyv.hu/konyvek/koos_antal_python_a_gepben