Python bevezető foglalkozás - CoderDojo Szentendre · Python bevezető foglalkozás Programozás...

Post on 17-Oct-2019

14 views 0 download

Transcript of Python bevezető foglalkozás - CoderDojo Szentendre · Python bevezető foglalkozás Programozá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

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

Python bevezető foglalkozás

Készítette:Buttyán Levente

Levente.Buttyan@gmail.comCoderDojo Szentendre

2017

50