52
Változók és adattípusok Változók és adattípusok előző foglalkozás összefoglalása, ismétlő gyakorlatok változók elnevezése, értékadás, többszörös értékadás műveletek egész és tört számokkal, string-ekkel logikai változók és logikai műveletek típusátalakítás, néhány beépített függvény

Változók és adattípusokszentendre.coderdojo.hu/wp-content/uploads/python-datatypes-2017.pdf · A kinyíló Debug ontrol ablakban lépésenként futtathatod a programot, miután

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Változók és adattípusokszentendre.coderdojo.hu/wp-content/uploads/python-datatypes-2017.pdf · A kinyíló Debug ontrol ablakban lépésenként futtathatod a programot, miután

Változók és adattípusok

Változók és adattípusok

előző foglalkozás összefoglalása, ismétlő gyakorlatok

változók elnevezése, értékadás, többszörös értékadás

műveletek egész és tört számokkal, string-ekkel

logikai változók és logikai műveletek

típusátalakítás, néhány beépített függvény

Page 2: Változók és adattípusokszentendre.coderdojo.hu/wp-content/uploads/python-datatypes-2017.pdf · A kinyíló Debug ontrol ablakban lépésenként futtathatod a programot, miután

Változók és adattípusok

Mi a program?

• utasítások sorozata

• valamilyen feladat megoldására

• amit egy számítógép hajt végre

2

Page 3: Változók és adattípusokszentendre.coderdojo.hu/wp-content/uploads/python-datatypes-2017.pdf · A kinyíló Debug ontrol ablakban lépésenként futtathatod a programot, miután

Változók és adattípusok

Mi a programozás?

• programok készítése, mely általában a következő tevékenységeket jelenti:

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

Page 4: Változók és adattípusokszentendre.coderdojo.hu/wp-content/uploads/python-datatypes-2017.pdf · A kinyíló Debug ontrol ablakban lépésenként futtathatod a programot, miután

Változók és adattípusok

Mi a programozási nyelv?

• programok írására szolgáló mesterséges nyelv

– 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 ...

4

Page 5: Változók és adattípusokszentendre.coderdojo.hu/wp-content/uploads/python-datatypes-2017.pdf · A kinyíló Debug ontrol ablakban lépésenként futtathatod a programot, miután

Változók és adattípusok

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

5

Page 6: Változók és adattípusokszentendre.coderdojo.hu/wp-content/uploads/python-datatypes-2017.pdf · A kinyíló Debug ontrol ablakban lépésenként futtathatod a programot, miután

Változók és adattípusok

terminálablak(ebben fut a program)

IDLE ablakok

6

kódablak(ebben írjuk a programot)

File New Filevagy CTRL-N

Page 7: Változók és adattípusokszentendre.coderdojo.hu/wp-content/uploads/python-datatypes-2017.pdf · A kinyíló Debug ontrol ablakban lépésenként futtathatod a programot, miután

Változók és adattípusok

terminálablak(ebben fut a program)

terminálablak(ebben fut a program)

IDLE ablakok

7

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)

Page 8: Változók és adattípusokszentendre.coderdojo.hu/wp-content/uploads/python-datatypes-2017.pdf · A kinyíló Debug ontrol ablakban lépésenként futtathatod a programot, miután

Változók és adattípusok

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

8

szam = 6print(szam)masikszam = 2*szamprint(masikszam)szam = 18print(szam)

Page 9: Változók és adattípusokszentendre.coderdojo.hu/wp-content/uploads/python-datatypes-2017.pdf · A kinyíló Debug ontrol ablakban lépésenként futtathatod a programot, miután

Változók és adattípusok

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!

9

a = 5b = 6.5c = "szöveg"d = 'ez is szöveg'e = Truec = -10

Page 10: Változók és adattípusokszentendre.coderdojo.hu/wp-content/uploads/python-datatypes-2017.pdf · A kinyíló Debug ontrol ablakban lépésenként futtathatod a programot, miután

Változók és adattípusok

Konzol input és output

10

nev = input("Hogy hívnak? ")kor = input("Hány éves vagy? ")print("Hello " + nev + "!")print("Biztos jó " + kor + " évesnek lenni.")

Page 11: Változók és adattípusokszentendre.coderdojo.hu/wp-content/uploads/python-datatypes-2017.pdf · A kinyíló Debug ontrol ablakban lépésenként futtathatod a programot, miután

Változók és adattípusok

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

11

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!

Page 12: Változók és adattípusokszentendre.coderdojo.hu/wp-content/uploads/python-datatypes-2017.pdf · A kinyíló Debug ontrol ablakban lépésenként futtathatod a programot, miután

Változók és adattípusok

Feltételes elágazás

12

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

Page 13: Változók és adattípusokszentendre.coderdojo.hu/wp-content/uploads/python-datatypes-2017.pdf · A kinyíló Debug ontrol ablakban lépésenként futtathatod a programot, miután

Változók és adattípusok

Feltételes elágazás

13

if <feltétel>:

else:

<feltétel> igaz?igen nem

Page 14: Változók és adattípusokszentendre.coderdojo.hu/wp-content/uploads/python-datatypes-2017.pdf · A kinyíló Debug ontrol ablakban lépésenként futtathatod a programot, miután

Változók és adattípusok

Ismétlés while ciklussal

• sokszor előfordul, hogy egy programrész végrehajtását addig kell ismételni, amíg valamilyen feltétel fennáll

• ezt a célt szolgálja a while ciklus (a while jelentése amíg):

14

szam = 0while (szam <= 100):

szam = int(input("Írj be egy 100-nál nagyobb számot! "))print("Köszönöm!")

Page 15: Változók és adattípusokszentendre.coderdojo.hu/wp-content/uploads/python-datatypes-2017.pdf · A kinyíló Debug ontrol ablakban lépésenként futtathatod a programot, miután

Változók és adattípusok

Ismétlés while ciklussal

15

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

Page 16: Változók és adattípusokszentendre.coderdojo.hu/wp-content/uploads/python-datatypes-2017.pdf · A kinyíló Debug ontrol ablakban lépésenként futtathatod a programot, miután

Változók és adattípusok

Ismétlés while ciklussal

16

while <feltétel>: <feltétel> igaz?igen nem

Page 17: Változók és adattípusokszentendre.coderdojo.hu/wp-content/uploads/python-datatypes-2017.pdf · A kinyíló Debug ontrol ablakban lépésenként futtathatod a programot, miután

Változók és adattípusok

Gondoltam egy számra!

17

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!

Page 18: Változók és adattípusokszentendre.coderdojo.hu/wp-content/uploads/python-datatypes-2017.pdf · A kinyíló Debug ontrol ablakban lépésenként futtathatod a programot, miután

Változók és adattípusok

Gondoltam egy számra!

18

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!")

Page 19: Változók és adattípusokszentendre.coderdojo.hu/wp-content/uploads/python-datatypes-2017.pdf · A kinyíló Debug ontrol ablakban lépésenként futtathatod a programot, miután

Változók és adattípusok

Gondoltam egy számra!

19

from random import randint

szam = randint(1, 100)print("Gondoltam egy számra 1 és 100 között.")

tipp = 0while (szam != tipp):

tipp = int(input("Melyik számra gondoltam? "))if (tipp > szam):

print("Nem, ennél kisebbre gondoltam.")else:

if (tipp < szam):print("Nem, ennél nagyobbra gondoltam.")

else:print("Igen, eltaláltad!")

Page 20: Változók és adattípusokszentendre.coderdojo.hu/wp-content/uploads/python-datatypes-2017.pdf · A kinyíló Debug ontrol ablakban lépésenként futtathatod a programot, miután

Változók és adattípusok

Lépésenkénti végrehajtás

20

Próbáld ki!

Indítsd el a Debugger-t a terminálablakban! (Debug Debugger) A kinyíló Debug Control ablakban lépésenként futtathatod a programot, miután a szokásos módon elindítottad (pl. F5 billentyűvel).A Step és az Over gombokkal léptetheted a programot utasításról utasításra. A Step minden függvénybe belép, az Over átlépi a függvényhívásokat. Figyeld meg a változók (szam és tipp) értékét a futás során! Ellenőrizd a feltételek teljesülését az if/else és while utasítások végrehajtásánál!

Page 21: Változók és adattípusokszentendre.coderdojo.hu/wp-content/uploads/python-datatypes-2017.pdf · A kinyíló Debug ontrol ablakban lépésenként futtathatod a programot, miután

Változók és adattípusok

Ismétlő gyakorlatok

21

Írj programot!

Írj programot, mely kiírja a 7-tel osztható számokat 1-től 70-ig!Módosítsd a programot úgy, hogy azok mellé a számok mellé egy *-ot is kiírjon, amiben van 7-es számjegy!

Írj programot!

Írj programot, mely kiírja 2 hatványait 1-től 1000-ig! A számokat írjuk egy sorba, pontosvesszővel elválasztva! Azaz, ilyen kimenetet várunk:1; 2; 4; 8; ...

Page 22: Változók és adattípusokszentendre.coderdojo.hu/wp-content/uploads/python-datatypes-2017.pdf · A kinyíló Debug ontrol ablakban lépésenként futtathatod a programot, miután

Változók és adattípusok

Ismétlő gyakorlatok

22

n = 7while (n <= 70):

print(n)n = n + 7

n = 7while (n <= 70):

if ((n == 7) or (n == 70)):print(n, "*")

else:print(n)

n = n + 7

Page 23: Változók és adattípusokszentendre.coderdojo.hu/wp-content/uploads/python-datatypes-2017.pdf · A kinyíló Debug ontrol ablakban lépésenként futtathatod a programot, miután

Változók és adattípusok

Ismétlő gyakorlatok

23

sor = ""n = 1while (n <= 1000):

sor = sor + str(n) + "; "n = 2*n

print(sor)

n = 1while (n <= 1000):

print(n, end="; ")n = 2*n

Page 24: Változók és adattípusokszentendre.coderdojo.hu/wp-content/uploads/python-datatypes-2017.pdf · A kinyíló Debug ontrol ablakban lépésenként futtathatod a programot, miután

Változók és adattípusok

Változók elnevezése

• a változók nevét a programozó választja

• egy változónév nem lehet foglalt Python kulcsszó, mint pl. if, else, while, def, and, ...

• a változónevek betűket és számokat is tartalmazhatnak, de...– nem kezdődhetnek számmal

– nem lehet bennük szóköz vagy olyan speciális karakter, mint #, &, $, ...

• a változó nevek tartalmazhatnak _ (aláhúzás) karaktert

24

Page 25: Változók és adattípusokszentendre.coderdojo.hu/wp-content/uploads/python-datatypes-2017.pdf · A kinyíló Debug ontrol ablakban lépésenként futtathatod a programot, miután

Változók és adattípusok

Változók elnevezése

• válasszunk rövid, de kifejező neveket!– pl. egy háromszög magassága lehet magassag vagy

néha egyszerűen csak m

– pl. egy bekért név és életkor lehet nev és kor

• ha mégis hosszabb nevet kell választani, akkor kövessünk egységes elnevezési mintát– bármilyen mintát használhatnánk, de a Python

programozók az alábbi mintát követik:

haromszog_magassag, kor_sugar, ...

25

Page 26: Változók és adattípusokszentendre.coderdojo.hu/wp-content/uploads/python-datatypes-2017.pdf · A kinyíló Debug ontrol ablakban lépésenként futtathatod a programot, miután

Változók és adattípusok

Változók elnevezése

26

Melyik helytelen?

Az alábbi változónevek közül melyik helytelen? Melyik az, ami helyes, de kerülendő? És melyik az, ami nem python-os?

oldal_a szam#1 elso_betuqwert tablaOszlop12 _specteglalap_atlo 2.sor szovegHossz3osztoi korSugar elsegombMegseHatterszin $200 osszegeger_pozicio_y sebesseg_x __

Page 27: Változók és adattípusokszentendre.coderdojo.hu/wp-content/uploads/python-datatypes-2017.pdf · A kinyíló Debug ontrol ablakban lépésenként futtathatod a programot, miután

Változók és adattípusok

Változók elnevezése

27

oldal_a szam#1 elso_betuqwert tablaOszlop12 _specteglalap_atlo 2.sor szovegHossz3osztoi korSugar elsegombMegseHatterszin $200 osszegeger_pozicio_y sebesseg_x __

Page 28: Változók és adattípusokszentendre.coderdojo.hu/wp-content/uploads/python-datatypes-2017.pdf · A kinyíló Debug ontrol ablakban lépésenként futtathatod a programot, miután

Változók és adattípusok

Értékadás

• az értékadás az = jellel történik

• az első értékadással hozzuk létre a változót

• további értékadással változtathatjuk a változóban tárolt értéket

• az értékadás meghatározza a változó típusát is

28

szam = 6szam2 = 5*(szam+1)

szam = 12szam = szam + 1szam += 1

n = 15pi = 3.1415msg = "Hello!"

n = pi

Page 29: Változók és adattípusokszentendre.coderdojo.hu/wp-content/uploads/python-datatypes-2017.pdf · A kinyíló Debug ontrol ablakban lépésenként futtathatod a programot, miután

Változók és adattípusok

Többszörös értékadás

• a Pythonban egyszerre több változóhoz is rendelhetünk értéket:

• ennek segítségével kényelmesen cserélhetjük fel két változó értékét:

29

a, b, c = 1, 2, 3

x, y = 1, 2x, y = y, x

Page 30: Változók és adattípusokszentendre.coderdojo.hu/wp-content/uploads/python-datatypes-2017.pdf · A kinyíló Debug ontrol ablakban lépésenként futtathatod a programot, miután

Változók és adattípusok

Műveletek egész számokkal

• alapműveletek: +, -, *, /

• további hasznos műveletek:

– hatványozás: **

– egész osztás: //

– maradékos osztás: %

30

>>> 2**6418446744073709551616

>>> 15/27.5>>> 15//27>>> 15%21

Page 31: Változók és adattípusokszentendre.coderdojo.hu/wp-content/uploads/python-datatypes-2017.pdf · A kinyíló Debug ontrol ablakban lépésenként futtathatod a programot, miután

Változók és adattípusok

Műveletek tört számokkal

• alapműveletek: +, -, *, /

• próbáljuk ki ezeket is:

– hatványozás: **

– egész osztás: //

– maradékos osztás: %

31

>>> 2.5**109536.7431640625

>>> 15.5/27.75>>> 15.5//27.0>>> 15.5%21.5

Page 32: Változók és adattípusokszentendre.coderdojo.hu/wp-content/uploads/python-datatypes-2017.pdf · A kinyíló Debug ontrol ablakban lépésenként futtathatod a programot, miután

Változók és adattípusok

Műveletek precedenciája

• sorrend

1. **

2. *, /, //, %

3. +, -

• ha valami nem egyértelmű, használjunk zárójeleket!

32

>>> 5+10/210.0

>>> 5*4**280

>>> 10/2*525.0

>>> 10/2+5*6**4-26483.0

>>> 10/2+5*6**(4-2)185.0

Page 33: Változók és adattípusokszentendre.coderdojo.hu/wp-content/uploads/python-datatypes-2017.pdf · A kinyíló Debug ontrol ablakban lépésenként futtathatod a programot, miután

Változók és adattípusok

Beépített függvények

• minimum és maximum– min(), max()

• kerekítés– round()

33

>>> min(5, 10, 15)5>>> max(5, 10, 15)15>>> max(5.4, 6.25, 8.9)8.9

>>> round(15.2)15>>> round(15.6)16

Page 34: Változók és adattípusokszentendre.coderdojo.hu/wp-content/uploads/python-datatypes-2017.pdf · A kinyíló Debug ontrol ablakban lépésenként futtathatod a programot, miután

Változók és adattípusok

Stringek

• egy szöveg karakterek sorozatából áll

• az ilyen karakterláncokat string-eknek nevezzük

• a stringet jelölhetjük a "..." vagy a '...' jelekkel

34

msg = "Hello!"msg = 'Hello!'

msg = "Ez egy 'A' betű."msg = 'Ez egy "idézet".'

Page 35: Változók és adattípusokszentendre.coderdojo.hu/wp-content/uploads/python-datatypes-2017.pdf · A kinyíló Debug ontrol ablakban lépésenként futtathatod a programot, miután

Változók és adattípusok

String-kezelés

• szöveg hosszának megállapítása– len()

• szöveg átalakítása kis- vagy nagybetűssé– lower(), upper()

• keresés szövegben– find()

• előfordulás számlálása– count()

35

>>> s = "Hello!">>> len(s)6>>> s.upper()'HELLO!'>>> s.lower()'hello!'>>> s.find('o')4>>> s.find('b')-1>>> s.count('l')2>>> s.count('b')0

Page 36: Változók és adattípusokszentendre.coderdojo.hu/wp-content/uploads/python-datatypes-2017.pdf · A kinyíló Debug ontrol ablakban lépésenként futtathatod a programot, miután

Változók és adattípusok

Típusátalakítás

• sokszor szükség van egy változóban tárolt érték típusának átalkítására

• str(): egész és tört számokból csinál string-et

• int() és float(): egészet és törtet csinál string-ből– mi történik, ha a float() bemenete

egy egész?

– mi történik, ha az int() bemenete egy tört?

36

>>> str(12)'12'>>> str(15.6)'15.6'

>>> int('12')12>>> float('15.6')15.6

>>> float(12)12.0>>> int(15.6)15

Page 37: Változók és adattípusokszentendre.coderdojo.hu/wp-content/uploads/python-datatypes-2017.pdf · A kinyíló Debug ontrol ablakban lépésenként futtathatod a programot, miután

Változók és adattípusok

Egy mese tanulságai

37

Egészítsd ki!

Egészítsd ki az alábbi programot értelemszerűen! Ügyelj arra, hogy a „volt” szó minden előfordulását megszámolja a program, a kis- és nagybetűsöket egyaránt!

szoveg = "Egyszer volt, hol nem volt, volt egyszer egy király. Volt ennek a királynak három fia."

print("A szöveg hossza: " + __________)print("A 'volt' szó ennyiszer fordul elő: " + __________)print("A 'volt' szó első előfordulásának helye: " + __________)print("A 'király' szó ennyiszer fordul elő: " + __________)print("A 'király' szó első előfordulásának helye: " + __________)

Page 38: Változók és adattípusokszentendre.coderdojo.hu/wp-content/uploads/python-datatypes-2017.pdf · A kinyíló Debug ontrol ablakban lépésenként futtathatod a programot, miután

Változók és adattípusok

Egy mese tanulságai

38

szoveg = "Egyszer volt, hol nem volt, volt egyszer egy király. Volt ennek a királynak három fia."szoveg = szoveg.lower()print("A szöveg hossza: " + str(len(szoveg)))print("A 'volt' szó ennyiszer fordul elő: " + str(szoveg.count('volt')))print("A 'volt' szó első előfordulásának helye: " + str(szoveg.find('volt')))print("A 'király' szó ennyiszer fordul elő: " + str(szoveg.count('király')))print("A 'király' szó első előfordulásának helye: " + str(szoveg.find('király')))

Page 39: Változók és adattípusokszentendre.coderdojo.hu/wp-content/uploads/python-datatypes-2017.pdf · A kinyíló Debug ontrol ablakban lépésenként futtathatod a programot, miután

Változók és adattípusok

Logikai műveletek

• Boolean típusú (logikai) változók csak True(igaz) vagy False (hamis) értéket vehetnek fel

• ilyen változókkal logikai műveleteket végezhetünk:

1. not (negáció)

2. and (és)

3. or (vagy)

39

>>> True and FalseFalse>>> True or FalseTrue>>> not TrueFalse

Page 40: Változók és adattípusokszentendre.coderdojo.hu/wp-content/uploads/python-datatypes-2017.pdf · A kinyíló Debug ontrol ablakban lépésenként futtathatod a programot, miután

Változók és adattípusok

Logikai műveletek

40

A B A and B

F F F

F T F

T F F

T T T

A B A or B

F F F

F T T

T F T

T T T

A not A

F T

T F

Page 41: Változók és adattípusokszentendre.coderdojo.hu/wp-content/uploads/python-datatypes-2017.pdf · A kinyíló Debug ontrol ablakban lépésenként futtathatod a programot, miután

Változók és adattípusok

Feltételek kiértékelése

41

Mit ír ki?

Mit ír ki ez a program?

X, Y, Z = 100, 25, 70

if ((X > Y) or (Y > Z)):print("Alma")

else:print("Körte")

if ((Z < X) and not(Z > Y)):print("Banán")

else:print("Narancs")

Page 42: Változók és adattípusokszentendre.coderdojo.hu/wp-content/uploads/python-datatypes-2017.pdf · A kinyíló Debug ontrol ablakban lépésenként futtathatod a programot, miután

Változók és adattípusok

Összefoglalás

• változók elnevezése• értékadás és többszörös értékadás• műveletek egész és tört számokkal• beépített függvények

– min(), max(), round()

• string-ek és string-kezelés– len(), lower(), upper(), find(), count()

• típusátalakítás– str(), int(), float()

• logikai műveletek– and, or, not

42

Page 43: Változók és adattípusokszentendre.coderdojo.hu/wp-content/uploads/python-datatypes-2017.pdf · A kinyíló Debug ontrol ablakban lépésenként futtathatod a programot, miután

Változók és adattípusok

Egy szám osztói

43

Feladat

Írj programot, mely bekér egy pozitív egész számot, majd kiszámolja és kiírja annak osztóit! Az osztók egy sorban, pontosvesszővel elválasztva jelenjenek meg!

A program várt működése pl. a következő:

Írj be egy pozitív egész számot: 1515 osztói:1; 3; 5; 15

Page 44: Változók és adattípusokszentendre.coderdojo.hu/wp-content/uploads/python-datatypes-2017.pdf · A kinyíló Debug ontrol ablakban lépésenként futtathatod a programot, miután

Változók és adattípusok

Egy szám osztói

44

Megoldási terv

• Kérd be a számot, és azonnal alakítsd át egész számmá!• Hozz létre egy változót, amiben a kiírandó osztókat gyűjtöd majd!

Mivel az 1 minden számnak osztója, ezért a változó kezdő értéke lehet ”1”. Ehhez fűzöd majd a további osztókat.

• Minden n számra 2-től a megadott szám feléig, vizsgáld meg, hogy n osztója-e a számnak! Ha igen, akkor n-et fűzd hozzá az osztókat tároló változó értékéhez!

• Végül fűzd hozzá az osztókhoz magát a számot, és írd ki az osztókat tároló változó értékét!

Page 45: Változók és adattípusokszentendre.coderdojo.hu/wp-content/uploads/python-datatypes-2017.pdf · A kinyíló Debug ontrol ablakban lépésenként futtathatod a programot, miután

Változók és adattípusok

Egy szám osztói

45

Ötletek

• n osztója egy X számnak, ha X-et n-nel elosztva 0 maradékot kapunk. Ezt így tesztelheted a programodban:

if (X%n == 0):

• Meg kell vizsgálnod minden n számra 2-től a megadott szám feléig, hogy nosztója-e a számnak. Ezt egy while ciklussal lehet megoldani. A ciklus belsejében ne felejtsd el n aktuális értékének vizsgálata után n értékét megnövelni eggyel. Különben a programod végtelen ciklusba kerül, és soha nem áll le.

Page 46: Változók és adattípusokszentendre.coderdojo.hu/wp-content/uploads/python-datatypes-2017.pdf · A kinyíló Debug ontrol ablakban lépésenként futtathatod a programot, miután

Változók és adattípusok

Tökéletes számok

47

Feladat

Egy pozitív egész számot tökéletesnek nevezünk, ha a szám megegyezik az önmagánál kisebb osztóinak összegével. Pl. a 6 tökéletes szám, mert az önmagánál kisebb osztói az 1, 2, 3, és ezek összege pont 6.

Az előző feladat mintájára, írj programot, mely bekér egy pozitív egész számot, majd megállapítja, hogy az tökéletes szám-e vagy nem! A program várt működése pl. a következő:

Írj be egy pozitív egész számot: 6Tökéletes szám!

Írj be egy pozitív egész számot: 12Nem tökéletes szám.

Page 47: Változók és adattípusokszentendre.coderdojo.hu/wp-content/uploads/python-datatypes-2017.pdf · A kinyíló Debug ontrol ablakban lépésenként futtathatod a programot, miután

Változók és adattípusok

Tökéletes számok

48

Megoldási terv

• Kérd be a számot, és azonnal alakítsd át egész számmá!• Hozz létre egy változót, amiben az osztók összegét tárolod majd! Mivel

az 1 minden számnak osztója, ezért a változó kezdő értéke lehet 1. Ehhez adod majd hozzá a további osztókat.

• Minden n számra 2-től a megadott szám feléig, vizsgáld meg, hogy n osztója-e a számnak! Ha igen, akkor n-et add hozzá az osztók összegét tároló változó értékéhez!

• Végül ellenőrizd, hogy az osztók összege megegyezik-e a számmal, és az ellenőrzés eredményétől függően írd ki a megfelelő üzenetet a képernyőre!

Page 48: Változók és adattípusokszentendre.coderdojo.hu/wp-content/uploads/python-datatypes-2017.pdf · A kinyíló Debug ontrol ablakban lépésenként futtathatod a programot, miután

Változók és adattípusok

Tökéletes számok keresése

50

Feladat

Az előző feladatban készített programmal megpróbálhatsz tökéletes számokat keresni, de hamar rájössz majd, hogy ez kézzel elég hosszadalmas.

Írj programot, mely egy megadott felső határig az összes számot megvizsgálja, és kiírja a tökéletes számokat! A program várt működése pl. a következő:

Tökéletes szám keresésének felső határa: 100Ezeket a tökéletes számokat találtam:628

Page 49: Változók és adattípusokszentendre.coderdojo.hu/wp-content/uploads/python-datatypes-2017.pdf · A kinyíló Debug ontrol ablakban lépésenként futtathatod a programot, miután

Változók és adattípusok

Tökéletes számok keresése

51

Megoldási ötlet

• Lényegében az előző programodat kell beletenni egy while ciklus belsejébe, mely az összes számon végigmegy 6-tól (tudjuk, hogy 6-nál nincs kisebb tökéletes szám) a bekért felső határig.

Page 50: Változók és adattípusokszentendre.coderdojo.hu/wp-content/uploads/python-datatypes-2017.pdf · A kinyíló Debug ontrol ablakban lépésenként futtathatod a programot, miután

Változók és adattípusok

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

Page 51: Változók és adattípusokszentendre.coderdojo.hu/wp-content/uploads/python-datatypes-2017.pdf · A kinyíló Debug ontrol ablakban lépésenként futtathatod a programot, miután

Változók és adattípusok

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

Page 52: Változók és adattípusokszentendre.coderdojo.hu/wp-content/uploads/python-datatypes-2017.pdf · A kinyíló Debug ontrol ablakban lépésenként futtathatod a programot, miután

Változók és adattípusok

Készítette:Buttyán Levente

[email protected] Szentendre

2017

55