[ tiki46 @ 30.11.2010. 10:22 ] @
imam jedno pitanje....moram napisati program u pythonu i ne znam kako...dolazim iz slovenije, zato ču vam i stavit slovenski vodič kroz nalogu....ako ne razumijete slovenski možete me slobodno pitati da vam kažem šta znači koja reč....:)

vodič:
Najprej "disclaimer": srečal sem že veliko "Mustaf" in "Ahmedov", zato vem, da so prijaznejši od poprečnega Janeza in Jožeta. Zgodba, ki namiguje na tistih nekaj njihovih soimenjakov, ki jim niso v čast, naj ostane, da bo predavanje lepše teklo.

Naloga temelji na prejšnji nalogi. Pri njenem reševanju smete uporabiti objavljene rešitve prejšnje naloge, vendar jih morate zapakirati tako, kot velevajo spodnja navodila.

Sestavi funkcijo preberiKontakte(), ki prebere datoteko contacts.xml in kot rezultat vrne slovar, katerega ključi so kode oseb (npr. "57485e3ae987c39d"), vrednosti pa imena pripadajočih oseb (npr. "Fadil"). Za priloženo datoteko contacts.xml mora funkcija vrniti naslednji slovar:

>>> preberiKontakte()
{'3d29777ba6fd7fea': 'Omar', 'adcd13753365d5dc': 'Mustafa', '91fc7e3a9f52aeea': 'Abdulah ibn Husein', '28757c8a8602ef17': 'Abdul', '441d4bd0a7f1bb61': 'Osama', '46e4aec0da28358a': 'Jibril', '31a35f8233b341b7': 'Ahmed', '8498a217b6b7e6a9': 'Fadil', '5e41cd57ce4f3198': 'Omar', '415cfac9b06b9745': 'Husein'}

Predpostavite lahko (ni pa vam treba), da .picasa.ini ne vsebuje dodatnih informacij, torej se na vsako sliko nanašajo natančno tri vrstice.

Nato sestavi funkcijo izlusci(vrstica, kontakti), ki kot argument dobi vrstico iz datoteke .picasa.ini, ki vsebuje obraze, in slovar, kakršnega vrne preberiKontakte. Funkcija izlusci mora vrniti množico vseh ljudi, ki se nahajajo v vrstici. Tule je primer, kaj mora funkcija znati.

>>> kontakti = preberiKontakte()
>>> izlusciOsebe("faces=rect64(9ae536feca218f46),441d4bd0a7f1bb61;rect64(3863a3bfede8e4ba),91fc7e3a9f52aeea", kontakti)
set(['Osama', 'Abdulah ibn Husein'])

To, kar smo napisali doslej, zahteva le, da svojo ali objavljeno rešitev naloge prepišete v dve funkciji. Zdaj pa še, kar je novega: napišite program, ki z uporabo gornjih funkcij prebere vsebino datotek contacts.xml in .picasa.ini ter sestavi slovar množic, iz katerega je vidno, kdo so znanci posamezne osebe. Rezultat naj bo shranjen v spremenljivki znanci, ki mora za dani datoteki izgledati natanko tako, kot kaže spodnji izpis (dovoljeno je le, da je spremenjen vrstni red oseb). Kaj, točno, je spodnja spremenljivka, pa odkrijte sami.

>>> znanci
{'Ahmed': set(['Osama', 'Fadil', 'Mustafa', 'Jibril']), 'Mustafa': set(['Osama', 'Ahmed', 'Fadil', 'Omar', 'Jibril']), 'Abdulah ibn Husein': set(['Osama', 'Husein']), 'Abdul': set(['Osama']), 'Husein': set(['Abdulah ibn Husein']), 'Osama': set(['Abdulah ibn Husein', 'Abdul', 'Ahmed', 'Mustafa']), 'Fadil': set(['Ahmed', 'Mustafa', 'Omar', 'Jibril']), 'Omar': set(['Fadil', 'Mustafa']), 'Jibril': set(['Ahmed', 'Fadil', 'Mustafa'])}


Pri reševanju nalog uporabljajte priloženi datoteki; arhiv vsebuje tudi eno sliko. Ostale slike sem, tako kot oni material pred pol leta, poslal na WikiLeaks.

Namig: pojdite prek vrstic .picasa.ini in ko naletite na vrstico z obrazi, pokličite izlusciObraze. Nato pojdite čez vse pare obrazov in jih dodajte v slovar znanci. Pozorno preberite tisti del zapiskov s teh predavanj, ki se nanašajo na zadnjo uro (torej, zadnjo uro predavanj, ne smrtno posteljo), namreč telovadbo s seznami študentov, ki izbirajo predmete. Vse, kar morate početi, se skriva tam.