Python bevezető foglalkozás -...
Transcript of Python bevezető foglalkozás -...
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
Labirintus
4
Lehetséges utasítások:Menj előre egy lépést!Fordulj jobbra!Fordulj balra!Állj meg! Megérkeztél.
Feladat:
A fenti utasítások segítségével írj programot mely átvezeti a cicát a labirintuson!
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 változó értékét bármikor felülírhatod
• a tárolt értéket a változó nevének leírásával hívhatod elő
• változókkal végezhetsz műveleteket
5
a legyen 6s legyen "hello"b legyen a + 2a legyen ba legyen a + 1c legyen a + b
Python bevezető foglalkozás
Egyjegyű vagy többjegyű?
6
Utasítások:... változó értéke legyen ... Ha ... akkor folytasd a ...-dik sortólÍrd ki ... változó értékétStop
Program:1| X változó értéke legyen 82| 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ól5| Írd ki T1 változó értékét6| Stop7| Írd ki T2 változó értékét8| 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
Páros számok
7
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!
Utasítások:... változó értéke legyen ... Ha ... akkor folytasd a ...-dik sortólÍrd ki ... változó értékétStop
Python bevezető foglalkozás
8
Program:1| X változó értéke legyen 22| Írd ki X változó értékét3| X változó értéke legyen X+24| Ha X < 101 akkor folytasd a 2-dik sortól5| Stop
Python bevezető foglalkozás
Program:1| X változó értéke legyen 22| Írd ki X változó értékét3| X változó értéke legyen X+24| Ha X < 101 akkor folytasd a 2-dik sortól5| Stop
9
Változók:X = 2
Python bevezető foglalkozás
Program:1| X változó értéke legyen 22| Írd ki X változó értékét3| X változó értéke legyen X+24| Ha X < 101 akkor folytasd a 2-dik sortól5| Stop
10
2
Változók:X = 2
Python bevezető foglalkozás
Program:1| X változó értéke legyen 22| Írd ki X változó értékét3| X változó értéke legyen X+24| Ha X < 101 akkor folytasd a 2-dik sortól5| Stop
11
2
Változók:X = 4
Python bevezető foglalkozás
Program:1| X változó értéke legyen 22| Írd ki X változó értékét3| X változó értéke legyen X+24| Ha X < 101 akkor folytasd a 2-dik sortól5| Stop
12
2
Változók:X = 4
Python bevezető foglalkozás
Program:1| X változó értéke legyen 22| Írd ki X változó értékét3| X változó értéke legyen X+24| Ha X < 101 akkor folytasd a 2-dik sortól5| Stop
13
24
Változók:X = 4
Python bevezető foglalkozás
Program:1| X változó értéke legyen 22| Írd ki X változó értékét3| X változó értéke legyen X+24| Ha X < 101 akkor folytasd a 2-dik sortól5| Stop
14
24
Változók:X = 6
Python bevezető foglalkozás
Program:1| X változó értéke legyen 22| Írd ki X változó értékét3| X változó értéke legyen X+24| Ha X < 101 akkor folytasd a 2-dik sortól5| Stop
15
24
Változók:X = 6
Python bevezető foglalkozás
Program:1| X változó értéke legyen 22| Írd ki X változó értékét3| X változó értéke legyen X+24| Ha X < 101 akkor folytasd a 2-dik sortól5| Stop
16
246
Változók:X = 6
Python bevezető foglalkozás
Program:1| X változó értéke legyen 22| Írd ki X változó értékét3| X változó értéke legyen X+24| Ha X < 101 akkor folytasd a 2-dik sortól5| Stop
17
246
Változók:X = 8
Python bevezető foglalkozás
Program:1| X változó értéke legyen 22| Írd ki X változó értékét3| X változó értéke legyen X+24| Ha X < 101 akkor folytasd a 2-dik sortól5| Stop
18
246
Változók:X = 8
Python bevezető foglalkozás
Program:1| X változó értéke legyen 22| Írd ki X változó értékét3| X változó értéke legyen X+24| Ha X < 101 akkor folytasd a 2-dik sortól5| Stop
19
2468
Változók:X = 8
Python bevezető foglalkozás
Program:1| X változó értéke legyen 22| Írd ki X változó értékét3| X változó értéke legyen X+24| Ha X < 101 akkor folytasd a 2-dik sortól5| Stop
20
80828486889092949698100
Változók:X = 100
Python bevezető foglalkozás
Program:1| X változó értéke legyen 22| Írd ki X változó értékét3| X változó értéke legyen X+24| Ha X < 101 akkor folytasd a 2-dik sortól5| Stop
21
80828486889092949698100
Változók:X = 102
Python bevezető foglalkozás
Program:1| X változó értéke legyen 22| Írd ki X változó értékét3| X változó értéke legyen X+24| Ha X < 101 akkor folytasd a 2-dik sortól5| Stop
22
80828486889092949698100
Változók:X = 102
Python bevezető foglalkozás
Program:1| X változó értéke legyen 22| Írd ki X változó értékét3| X változó értéke legyen X+24| Ha X < 101 akkor folytasd a 2-dik sortól5| Stop
23
80828486889092949698100
Változók:X = 102
Python bevezető foglalkozás
Programozási hibák
24
Program:1| X változó értéke legyen 22| Írd ki X változó értékét3| X változó értéke legyen X+24| Ha X < 101 akkor folytasd a 3-dik sortól5| Stop
Mit ír ki?
Vizsgáld meg ezt a programot! Mit ír ki?
Program:1| X változó értéke legyen 22| Írd ki X változó értékét3| X változó értéke legyen X+24| Ha X > 0 akkor folytasd a 2-dik sortól5| 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 ...
25
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
26
Python bevezető foglalkozás
terminálablak(ebben fut a program)
IDLE ablakok
27
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
28
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!
29
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
Kisérletezz!
30
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!
31
a = 5b = 6.5c = "szöveg"d = 'ez is szöveg'e = Truec = -10
Python bevezető foglalkozás
Típus hiba
32
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
33
nev = "Andris"kor = 12print(nev + " " + str(kor) + " éves.")
Python bevezető foglalkozás
Andris és apa együttes kora
34
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
35
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ú !
36
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: /
37
Í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
38
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
39
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
40
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
41
if <feltétel>:
else:
<feltétel> igaz?igen nem
Python bevezető foglalkozás
Többszörös elágazás
42
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
43
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
44
Í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
45
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):
46
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
47
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
48
while <feltétel>: <feltétel> igaz?igen nem
Python bevezető foglalkozás
Gondoltam egy számra!
49
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!
50
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/else
– ismétlés: while
52
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
53
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
54
http://mek.oszk.hu/08400/08435/08435.pdf
http://www.interkonyv.hu/konyvek/koos_antal_python_a_gepben