Informatika2-2013/Osszefoglalas8 11
71. sor: | 71. sor: | ||
'''Telefonkönyvbõl olvasás ''': [http://math.bme.hu/~kkovacs/info2/gyak9/9_telefonkonyvolvas.py alap], [http://math.bme.hu/~kkovacs/info2/gyak9/9_telefonkonyvolvas_kommentezve.py komment], [http://math.bme.hu/~kkovacs/info2/gyak9/9_telefonkonyvolvas_minkommentezve.py minkomment], [http://math.bme.hu/~kkovacs/info2/gyak9/telefonkonyv.txt bemenet] | '''Telefonkönyvbõl olvasás ''': [http://math.bme.hu/~kkovacs/info2/gyak9/9_telefonkonyvolvas.py alap], [http://math.bme.hu/~kkovacs/info2/gyak9/9_telefonkonyvolvas_kommentezve.py komment], [http://math.bme.hu/~kkovacs/info2/gyak9/9_telefonkonyvolvas_minkommentezve.py minkomment], [http://math.bme.hu/~kkovacs/info2/gyak9/telefonkonyv.txt bemenet] | ||
− | |||
<!-- Az olvasasnal nem zartam be a file-t --> | <!-- Az olvasasnal nem zartam be a file-t --> | ||
=== Megjegyzés === | === Megjegyzés === | ||
+ | |||
+ | Egy tanulsága az volt a gyakorlatnak, hogy stringeket raw_input-al olvasunk be, míg minden mást input-al. Mivel az input python szintaktikának megfelelõ bemenetet vár, szóval ha string-et akarnánk adni neki, akkor "-k közé kellene tenni. | ||
+ | |||
+ | Továbbá azt is megtanultuk, hogy nem csak listákat és szótárakat lehet bejárni for ciklussal, hanem akár file-okat is. | ||
+ | |||
+ | |||
+ | == 10. Gyakorlat == | ||
+ | |||
+ | === Összefoglalás === | ||
+ | |||
+ | Ezen a gyakorlaton kezdtünk el osztályokkal foglalkozni. Az osztályokról van [http://wiki.math.bme.hu/view/Informatika2-2013/Gyakorlat10#Oszt.C3.A1lyok itt] egy leírás, valamint az elõadásokon is meg lehet találni. Csak pár szóban foglalnám össze õket: | ||
+ | |||
+ | * Osztályokat tekinthetjük úgy, mintha egy új típust hoznánk létre, mondjuk a komplex számok típust. | ||
+ | * Amikor létrehozunk egy adott osztályba tartozó (adott osztály típusú) változót, azt objektumnak hívjuk. | ||
+ | * Az objektumoknak lehetnek adattagjaik, ezek változók, melyek az objektumhoz tartoznak. Valamint lehetnek metódusai, melyek függvények és az osztályában vannak definiálva. | ||
+ | * Léteznek beépített metódusok, melyek adott parancsokra futnak le, ilyen például az __init__ mely akkor fut le amikor létrehozunk egy objektumot. | ||
+ | * Az osztályok metódusainak elsõ paramétere mindig a '''self''', ami azt az objektumot tárolja amin meghívtuk a metódust. | ||
+ | |||
+ | === Feladatok === | ||
+ | |||
+ | A gyakorlat elsõ feladata azt mutatta be, hogy mi a különbség az osztály szintû és az objektum szintû adattagok között. Amikor '''A.v1'''-nek adunk értéket, azzal létrehozunk egy osztály szintû adattagot '''v1''' néven. Mikor egy '''A''' típusú objektumnak kérjük le a v1 adattagját, de neki nincs ilyenje, akkor megnézi hogy létezik-e ilyen néven osztály szintû adattag, ezt írja ki ilyenkor. Viszont ha adunk az objektumnak objektum szintû adattagot, akkor már ezt fogja használni és nem az osztály szintût. | ||
+ | |||
+ | A második feladatról a 11. gyakorlat összefoglalásában írok. |
A lap 2013. május 7., 20:32-kori változata
Tartalomjegyzék |
Megjegyzések
Az összefoglalást a gyakorlatokból írom, csak az elõadáson tanult elmélet nem igazán fog megjelenni benne.
Minden feladathoz 3 letölthetõ file van: egy komment nélküli, egy kommentezett, és egy kevésbé szájbarágósan kommentezett.
8. Gyakorlat
Összefoglalás
A gyakorlat célja az emlékeztetõ volt az info1-ben tanult sage és python használatra. Az ismétlés részben összefoglaltam ezeket, ezt most nem írnám le itt mégegyszer.
Feladatok
A feladatok célja az volt, hogy felfrissítse az emlékezeteteket a listák, ciklusok, stringek és szótárakról. A feladatok tényleg nagyon egyszerûek, jó ujjgyakorlat, ha megnézitek és megértitek a megoldásokat, ezután átnézitek a 9. gyakot, majd megpróbáljátok megoldani magatoktól a megnézett feladatokat (hogy ne az legyen, hogy csak a rövidtávú memóriátokban maradtak meg a megoldások ötletei). Az utolsó két feladatot nem oldottuk meg.
Kiegészítés 1: alap, komment, minkomment
Lista 1: alap, komment, minkomment
Lista 2: alap, komment, minkomment
Kiegészítés 2: alap, komment, minkomment
String 1: alap, komment, minkomment
String 2: alap, komment, minkomment
Megjegyzés
Nagyon fontos volt az elõadásról, hogy vannak objektumok melyeket nem lehet csak úgy =-vel lemásolni, erre egy példa:
l = [1, 8, 5] l2 = l l2[1] = 7 print l # [1, 7, 5]
Amint látjátok az l lista is megváltozott, pedig csak az l2 elemét változtattuk meg, ez azért van, mert az = jellel igazából azt mondtuk, hogy l2-vel érhessük el az l listát is.
A következõképpen lehet pl helyesen másolni egy listát (egy szintig).
l = [1, 8, 5] l2 = l[:] l2[1] = 7 print l # [1, 8, 5]
Az l[:]-al lekérem az l azon részlistáját, amely a 0. indexû elemtõl kezd, és az utolsóig tart, tehát a teljes listát. DE ez egy másolat, nem maga az l lista, tehát nem lesz vele gond.
9. Gyakorlat
Összefoglalás
A gyakorlat mindenféle input / output dolgokról szólt. Ezeket szerintem elég jól leírtam a gyakorlaton, így megint nem ismételném meg: link
Az osztályokról nem igazán volt idõm beszélni a 9. gyakorlatokon, a következõ résznél kezdem.
Feladatok
A feladatok elég közvetlenek voltak:
Hatványok kiírása : alap, komment, minkomment
Telefonkönyv : alap, komment, minkomment
Telefonkönyv file: alap, komment, minkomment
Telefonkönyvbõl olvasás : alap, komment, minkomment, bemenet
Megjegyzés
Egy tanulsága az volt a gyakorlatnak, hogy stringeket raw_input-al olvasunk be, míg minden mást input-al. Mivel az input python szintaktikának megfelelõ bemenetet vár, szóval ha string-et akarnánk adni neki, akkor "-k közé kellene tenni.
Továbbá azt is megtanultuk, hogy nem csak listákat és szótárakat lehet bejárni for ciklussal, hanem akár file-okat is.
10. Gyakorlat
Összefoglalás
Ezen a gyakorlaton kezdtünk el osztályokkal foglalkozni. Az osztályokról van itt egy leírás, valamint az elõadásokon is meg lehet találni. Csak pár szóban foglalnám össze õket:
- Osztályokat tekinthetjük úgy, mintha egy új típust hoznánk létre, mondjuk a komplex számok típust.
- Amikor létrehozunk egy adott osztályba tartozó (adott osztály típusú) változót, azt objektumnak hívjuk.
- Az objektumoknak lehetnek adattagjaik, ezek változók, melyek az objektumhoz tartoznak. Valamint lehetnek metódusai, melyek függvények és az osztályában vannak definiálva.
- Léteznek beépített metódusok, melyek adott parancsokra futnak le, ilyen például az __init__ mely akkor fut le amikor létrehozunk egy objektumot.
- Az osztályok metódusainak elsõ paramétere mindig a self, ami azt az objektumot tárolja amin meghívtuk a metódust.
Feladatok
A gyakorlat elsõ feladata azt mutatta be, hogy mi a különbség az osztály szintû és az objektum szintû adattagok között. Amikor A.v1-nek adunk értéket, azzal létrehozunk egy osztály szintû adattagot v1 néven. Mikor egy A típusú objektumnak kérjük le a v1 adattagját, de neki nincs ilyenje, akkor megnézi hogy létezik-e ilyen néven osztály szintû adattag, ezt írja ki ilyenkor. Viszont ha adunk az objektumnak objektum szintû adattagot, akkor már ezt fogja használni és nem az osztály szintût.
A második feladatról a 11. gyakorlat összefoglalásában írok.