Informatika2-2014/Gyakorlat02
A MathWikiből
(Változatok közti eltérés)
121. sor: | 121. sor: | ||
== Feladatok == | == Feladatok == | ||
=== Eloszlásfüggvény === | === Eloszlásfüggvény === | ||
+ | * [https://dl.dropboxusercontent.com/u/1100162/degs] | ||
* Írj függvényt, mely megszámolja egy paraméterként kapott listában az egyes elemek gyakoriságát. A végeredményt egy szótárban menti el, melyet visszatérési értékként ad vissza. | * Írj függvényt, mely megszámolja egy paraméterként kapott listában az egyes elemek gyakoriságát. A végeredményt egy szótárban menti el, melyet visszatérési értékként ad vissza. | ||
* Például | * Például |
A lap 2014. február 18., 13:44-kori változata
Tartalomjegyzék |
Elmélet
Adattípusok
- None
- numerikus
- egész
- lebegőpontos
- (complex)
- long
- boolean
- string
- tuple
x = (1,2,3,4)
- lista
x = [1, 2, 3, 4] x.append(5) len(x) x[1] = x[2]
- szótár
A = {} phonebook = {'Andrew Parson':8806336, 'Emily Everett':6784346, 'Peter Power':7658344, 'Lewis Lame':1122345} for key in phonebook: ... if key in phonebook: print phonebook[key] ...
- (halmaz)
>>> A=set([1,2,3]) >>> B=set([2,3,4]) >>> A | B set([1, 2, 3, 4]) >>> A & B set([2, 3]) >>> A - B set([1]) >>> A ^ B set([1, 4])
Szöveg
- Erről majd lesz részletesebben szó előadáson.
- Itt néhány olyan metódus szerepel, amit a gyakorlaton használunk
>>> A='abcdefgh' >>> A.replace('a','x') 'xbcdefgh' >>> A='abc dce' >>> L = A.split(" ") >>> L ['abc', 'dce'] >>> A = 'AbCdEf' >>> A.lower() 'abcdef'
Input, Output
- str() - string-et csinál más típusú objektumból, print valtozo és print str(valtozo) ekvivalens
- input() - Kiírja a neki adott string-et, és vár egy bementet, a visszatérési értéke a bemenet automatikusan értelmezve, pl:
m = input("Magassag centimeterben:") print "Magassag meterben:", m / 100.0
- raw_input() - Kiírja a neki adott string-et, és vár egy bementet, a visszatérési értéke a bemenet stringként, pl:
n = raw_input("Neved:") print "Hello", n
File I/O
- open(file_neve, megnyitasai_mod) - megnyit egy file-t, elsõ paramétere a file neve, második a megnyitási mód: 'w', 'a', 'r' a szokásosak. Pl:
f = open('test.txt', 'w')
- write() - metódusa a file objektumoknak (az elõzõ példában f file objektum), a neki adott string-et a file-ba írja. Pl:
f.write("Which witch watches which witch's watches?\nKovetkezo sor\n")
- read() - metódusa a file objektumoknak, beolvassa az egész file-t egy (potenciálisan) jó nagy string-be. Pl:
f = open('test.txt', 'r') s = f.read() print s
- readline() - metódusa a file objektumoknak, beolvas egy sort a file-ból, az újsor jelet is beolvassa, az üres sorokat '\n'-ként olvassa be. Ha a file végére ért üres sort olvas be. Pl:
line = f.readline() print line
- readlines() - metódusa a file objektumoknak, beolvassa az összes sort mint listát. Pl:
lines = f.readlines() for line in lines: print line
- A file objektumok iterálhatóak, azaz az elõzõ példa ekvivalens ezzel:
for line in f: print line
- close() - metódusa a file objektumoknak, bezárja a file-t. Pl:
f.close()
Feladatok
Eloszlásfüggvény
- [2]
- Írj függvényt, mely megszámolja egy paraméterként kapott listában az egyes elemek gyakoriságát. A végeredményt egy szótárban menti el, melyet visszatérési értékként ad vissza.
- Például
[1,1,2,1]
listára a visszatérési érték:
{1:3,2:1}
- Írj programot, mely beolvas egy egyoszlopos file-t, és kiszámítja az oszlopban szereplő egész számok eloszlásfüggvényét.
- A program az eredményt írja ki egy két oszlopos file-ba
- Egészítsd ki a programot úgy, hogy kiszámolja a mintában található értékek
- Átlagát
- Maximumát
- Minimumát
- Ezeket az értékeket a program egyszerű "print" paranccsal írja ki a felhasználónak.
- Jelenítsd meg a kapott eloszlásokat gnuplot programban (részletek órán).
- Változtasd meg a programot úgy. hogy tetszőleges valós számokon számoljon gyakoriságot (részletek órán).
Szavak gyakorisága
- Számold meg egy szöveges fájlban az egyes szavak gyakoriságát.
- Ügyelj arra, hogy egy beolvasott sor végéről töröld le a sorvége karaktert:
line = line.rstrip("\n")
- A sorokban space mentén tördeld a szavakat.
- Ne különböztesd meg a kis és nagybetűket a szavakban.
- Egészítsd ki a programot úgy, hogy kiírja a top K szót a szövegben (ahol K paraméter).
Vásárlók
- Írj programot, mely vásárlésok között keresi meg a két leginkább azonosat.
- A program bemenete egy olyan file, melyben soronként vannak felsorolva különböző vásárálások. Például:
kenyér paradicsom joghurt tej tejföl hagyma kenyér hagyma ...
- A program olvassa be a file minden egyes sorát.
- A beolvasás után páronként vizsgálja meg a vásárlásokat.
- A hasonlóságot Jaccard-hasonlóság alapján számoljátok (használjatok halmazokat!)