This commit is contained in:
eline 2023-05-01 15:30:56 +02:00
commit c77ec709b2
10 changed files with 24004 additions and 0 deletions

17974
20kleagues.txt Normal file

File diff suppressed because it is too large Load Diff

21
LICENSE Normal file
View File

@ -0,0 +1,21 @@
MIT License
Copyright (c) 2023 eline@dmz.rs
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

88
deniro.csv Normal file
View File

@ -0,0 +1,88 @@
"Year", "Score", "Title"
1968, 86, "Greetings"
1970, 17, "Bloody Mama"
1970, 73, "Hi, Mom!"
1971, 40, "Born to Win"
1973, 98, "Mean Streets"
1973, 88, "Bang the Drum Slowly"
1974, 97, "The Godfather, Part II"
1976, 41, "The Last Tycoon"
1976, 99, "Taxi Driver"
1977, 47, "1900"
1977, 67, "New York, New York"
1978, 93, "The Deer Hunter"
1980, 97, "Raging Bull"
1981, 75, "True Confessions"
1983, 90, "The King of Comedy"
1984, 89, "Once Upon a Time in America"
1984, 60, "Falling in Love"
1985, 98, "Brazil"
1986, 65, "The Mission"
1987, 100, "Dear America: Letters Home From Vietnam"
1987, 80, "The Untouchables"
1987, 78, "Angel Heart"
1988, 96, "Midnight Run"
1989, 64, "Jacknife"
1989, 47, "We're No Angels"
1990, 88, "Awakenings"
1990, 29, "Stanley & Iris"
1990, 96, "Goodfellas"
1991, 76, "Cape Fear"
1991, 69, "Mistress"
1991, 65, "Guilty by Suspicion"
1991, 71, "Backdraft"
1992, 87, "Thunderheart"
1992, 67, "Night and the City"
1993, 75, "This Boy's Life"
1993, 78, "Mad Dog and Glory"
1993, 96, "A Bronx Tale"
1994, 39, "Mary Shelley's Frankenstein"
1995, 80, "Casino"
1995, 86, "Heat"
1996, 74, "Sleepers"
1996, 38, "The Fan"
1996, 80, "Marvin's Room"
1997, 85, "Wag the Dog"
1997, 87, "Jackie Brown"
1997, 72, "Cop Land"
1998, 68, "Ronin"
1998, 38, "Great Expectations"
1999, 69, "Analyze This"
1999, 43, "Flawless"
2000, 43, "The Adventures of Rocky & Bullwinkle"
2000, 84, "Meet the Parents"
2000, 41, "Men of Honor"
2001, 73, "The Score"
2001, 33, "15 Minutes"
2002, 48, "City by the Sea"
2002, 27, "Analyze That"
2003, 4, "Godsend"
2004, 35, "Shark Tale"
2004, 38, "Meet the Fockers"
2005, 4, "The Bridge of San Luis Rey"
2005, 46, "Rent"
2005, 13, "Hide and Seek"
2006, 54, "The Good Shepherd"
2007, 21, "Arthur and the Invisibles"
2007, 76, "Captain Shakespeare"
2008, 19, "Righteous Kill"
2008, 51, "What Just Happened?"
2009, 46, "Everybody's Fine"
2010, 72, "Machete"
2010, 10, "Little Fockers"
2010, 50, "Stone"
2011, 25, "Killer Elite"
2011, 7, "New Year's Eve"
2011, 70, "Limitless"
2012, 92, "Silver Linings Playbook"
2012, 51, "Being Flynn"
2012, 29, "Red Lights"
2013, 46, "Last Vegas"
2013, 7, "The Big Wedding"
2013, 29, "Grudge Match"
2013, 11, "Killing Season"
2014, 9, "The Bag Man"
2015, 60, "Joy"
2015, 26, "Heist"
2015, 61, "The Intern"
2016, 11, "Dirty Grandpa"
1 Year Score Title
2 1968 86 Greetings
3 1970 17 Bloody Mama
4 1970 73 Hi, Mom!
5 1971 40 Born to Win
6 1973 98 Mean Streets
7 1973 88 Bang the Drum Slowly
8 1974 97 The Godfather, Part II
9 1976 41 The Last Tycoon
10 1976 99 Taxi Driver
11 1977 47 1900
12 1977 67 New York, New York
13 1978 93 The Deer Hunter
14 1980 97 Raging Bull
15 1981 75 True Confessions
16 1983 90 The King of Comedy
17 1984 89 Once Upon a Time in America
18 1984 60 Falling in Love
19 1985 98 Brazil
20 1986 65 The Mission
21 1987 100 Dear America: Letters Home From Vietnam
22 1987 80 The Untouchables
23 1987 78 Angel Heart
24 1988 96 Midnight Run
25 1989 64 Jacknife
26 1989 47 We're No Angels
27 1990 88 Awakenings
28 1990 29 Stanley & Iris
29 1990 96 Goodfellas
30 1991 76 Cape Fear
31 1991 69 Mistress
32 1991 65 Guilty by Suspicion
33 1991 71 Backdraft
34 1992 87 Thunderheart
35 1992 67 Night and the City
36 1993 75 This Boy's Life
37 1993 78 Mad Dog and Glory
38 1993 96 A Bronx Tale
39 1994 39 Mary Shelley's Frankenstein
40 1995 80 Casino
41 1995 86 Heat
42 1996 74 Sleepers
43 1996 38 The Fan
44 1996 80 Marvin's Room
45 1997 85 Wag the Dog
46 1997 87 Jackie Brown
47 1997 72 Cop Land
48 1998 68 Ronin
49 1998 38 Great Expectations
50 1999 69 Analyze This
51 1999 43 Flawless
52 2000 43 The Adventures of Rocky & Bullwinkle
53 2000 84 Meet the Parents
54 2000 41 Men of Honor
55 2001 73 The Score
56 2001 33 15 Minutes
57 2002 48 City by the Sea
58 2002 27 Analyze That
59 2003 4 Godsend
60 2004 35 Shark Tale
61 2004 38 Meet the Fockers
62 2005 4 The Bridge of San Luis Rey
63 2005 46 Rent
64 2005 13 Hide and Seek
65 2006 54 The Good Shepherd
66 2007 21 Arthur and the Invisibles
67 2007 76 Captain Shakespeare
68 2008 19 Righteous Kill
69 2008 51 What Just Happened?
70 2009 46 Everybody's Fine
71 2010 72 Machete
72 2010 10 Little Fockers
73 2010 50 Stone
74 2011 25 Killer Elite
75 2011 7 New Year's Eve
76 2011 70 Limitless
77 2012 92 Silver Linings Playbook
78 2012 51 Being Flynn
79 2012 29 Red Lights
80 2013 46 Last Vegas
81 2013 7 The Big Wedding
82 2013 29 Grudge Match
83 2013 11 Killing Season
84 2014 9 The Bag Man
85 2015 60 Joy
86 2015 26 Heist
87 2015 61 The Intern
88 2016 11 Dirty Grandpa

83
fajlovi.py Normal file
View File

@ -0,0 +1,83 @@
# fajlovi
# Kako manipulisemo fajlovima?
# Kako citamo fajlove?
# Kako kreiramo fajlove?
# Kako pisemo (dodajemo sadrzaj) u fajlove?
# Da bi otvorili fajl (za citanje ili pisanje) u python-u, koristimo funkciju:
# open
# argumenti za funkciju `open` su:
# - ime fajla (onog koji zelimo da otvorimo),
# - mod
# Objasnjenje za modove:
# Oni govore pajtonu sta planiramo da radimo sa tim fajlom. Neki od ponudjenih
# i najcesce koriscenih modova su:
# - "w" za pisanje, ako fajl ne postoji, kreira se novi, ako fajl postoji,
# sve u njemu se brise i onda mozemo da pisemo u taj fajl
# - "a" za pisanje, nalik na "w" samo sto mod "a" ne brise fajl nego dodaje
# - "r" za citanje
# znaci da bi otvorili neki fajl (tekstualni fajl) i njegov sadrzaj zabelezili
# u promenljivoj (tipa string) mozemo da uradimo sledece:
neki_fajl = open("tekst.txt", "r") # tekst.txt je fajl koji se nalazi u istom
# folderu kao i ovaj fajl (fajlovi.py)
sadrzaj_fajla = neki_fajl.read()
print(sadrzaj_fajla)
neki_fajl.close() # sve fajlove koje otvorimo moramo i da zatvorimo!!!
# inace rizikujemo da se desi korupcija fajla
# ako otvorimo neki fajl, i 2 puta pokusamo da procitamo njegov sadrzaj, samo
# prvi put cemo procitati taj sadrzaj; tj. citanje fajla, "konzumira" taj fajl!
# !! to ne znaci da ce fajl biti obrisan !!
fajl = open("tekst.txt", "r")
print(fajl.read())
print(fajl.read()) # ovde necemo stampati nista, zato sto je fajl vec procitan
# ako zelimo ponovo da procitamo isti fajl, moramo ga prvo
# zatvoriti pa ponovo otvoriti
fajl.close()
# druge metode (osim read()) koje mozemo koristiti su:
# - readline() koji cita jednu liniju fajla (vraca nam string)
# - readlines() koji cita sve linije fajla i vraca nam niz linija
# - write(tekst) koji upisuje zadati tekst (argument tipa string) u zeljeni fajl
# u python-u, mozemo iterirati preko fajlova (kao i sa nizovima i recnicima)
deniro_fajl = open("deniro.csv","r")
filmovi = {}
# ako pogledate fajl "deniro.csv", sastoji se od jedne linije koja opisuje redove
# fajla, a ostatak fajla su pomenuti redovi u formatu:
# vrednost, vrednost, vrednost
# !! pogledati fajl "deniro.csv" !!
fajl.readline() # da "preskocimo" prvu liniju fajla
for linija in fajl:
linija = linija.strip() # uklanjamo '\n' (znak za novi red) iz linije
# zatim delimo liniju na 3 dela (za 2 reza..), gde su delovi:
# godina kada je film objavljen, rejting filma i naslov filma
godina, rejting, naslov = linija.split(", ", 2)
filmovi[naslov] = (rejting, godina)
# sada u recniku "filmovi" koji smo definisali iznad, imamo parove
# film => (rejting, godina)
# to mozemo da iskoristimo da nadjemo npr:
# - sve filmove odredjene godine (npr. pitamo korisnika koju godinu zele, i onda
# ispisemo sve filmove od te godine, sortirane po rejtingu)
# - najbolje ocenjeno filmove
# - da vrsimo pretragu nad filmovima (npr. pitamo korisnika koji film zeli, i
# onda ispisemo godinu izlaska tog filma i njegov rejting, a ako u recniku
# nemamo taj film, onda ispisemo da nemamo trazeni film)
# ovo sve mogu biti zadaci za domaci!

26
iteriranje.py Normal file
View File

@ -0,0 +1,26 @@
# primer u kome se vidi nacin na koji "iteriramo" kroz niz, kao i kroz recnik
niz = [1,2,3,4,5]
# u primeru niza, iteriramo preko elemenata
for element in niz:
print(element)
print("---------------")
recnik = {
"a": 1,
"b": 2,
"c": 3,
"d": 4,
"e": 5,
}
# u primeru recnika, iteriramo preko kljuca
# a da dobijemo element u recniku koristimo `recnik[kljuc]`
for kljuc in recnik:
print(kljuc, recnik[kljuc])
# imati na umu da `kljuc` promenljiva u liniji `for kljuc in recnik` ne mora da se zove kljuc,
# to je samo naziv koji smo mi odabrali; samo treba zapamtiti da to ime mozemo da koristimo samo
# unutar for pelje (tj, za vreme iteriranja)

19
ocene.py Normal file
View File

@ -0,0 +1,19 @@
# jednostavan primer koji pokazuje iteraciju preko recnika, kao i jedan od
# standardnih problema za cije resavnanje obicno koristimo recnike
ocene = {
"srpski": 5,
"matematika": 4,
"likovno": 3
}
suma = 0
for predmet in ocene:
print("predmet", predmet, ":", ocene[predmet])
suma = suma + ocene[predmet]
prosek = suma / len(ocene)
print("prosek je", prosek)

103
recnici.py Normal file
View File

@ -0,0 +1,103 @@
# primer u kome predstavljamo recnike i radimo poredjenje izmedju recnika i nizova
# u vecini slucajeva, sintaksa za rad sa nizovima i recnicima je ista
niz = [1,2,3,4,5]
if 6 in niz: # pomocu `in` kljucne reci, mozemo proveriti da li je neka vrednost clan niza
print("6 je u nizu")
else:
print("6 nije u nizu")
ocene = { # za razliku od nizova, koje definisemo koriscenjem [] zagrada, za recnike koristimo {}
"srpski": 5,
"engleski": 2,
"matematika": 4,
"matematika": 5
}
print(ocene["srpski"]) # sintaksa za pristupanje elementima recnika je nalik na onu za pristupanje
# clanovima niza, samo sto u ovom slucaju umesto indeksa (tj. broja),
# koristimo kljuceve
print("ocena iz engleskog",ocene["engleski"]) # 2
ocene["engleski"] = 4 # za razliku od nizova kod kojis smo morali da koristimo append metodu, za
# dodavanje elemenata u recnik koristimo istu sintaksu kao i za pristupanje
# elementima
print("ocena iz engleskog",ocene["engleski"]) # 4
if "fizicko" in ocene: # kao sto primecujete, sintaksa za proveravanje da li je neka vrednost clan
# recnika, je potpuno ista kao i za proveravanje da li je neka vrednost clan
# niza
print("ocena iz fizickog",ocene["fizicko"])
else:
print("nema ocene iz fizickog")
print(ocene)
del ocene["engleski"] # mozemo da uklonima neki par (kljuc, vrenost) iz recnika (kao i sa nizovima)
print(ocene)
# malo ozbiljniji primer u kojem su kljucevi recnika imena (tipa string), a vrednosti drugi recnici
# koji predstavljaju neke ljude (ime, prezime, zanimanje, godiste, itd.)
petar = {
"ime": "Petar",
"prezime": "Petrovic",
"zanimanje": "Moler",
"godiste": 1950,
"imena dece": ["Mika", "Zika"],
"adresa": {
"grad": "Beograd",
"ulica": "Stolarska",
"broj": 35
}
}
marko = {
"ime": "Marko",
"prezime": "Markovic",
"zanimanje": "Zidar",
"godiste": 1990,
"imena dece": ["Iva", "Ana"],
"adresa": {
"grad": "Beograd",
"ulica": "Zidarska",
"broj": 13
}
}
adresar = { # mogli smo da ne pravimo posebne promenljive za ljude, vec da inicijalizujemo sve unutar
# recnika direktno, a mozemo i da za neke ljude koristimo vec definisane promenljive a za
# druge da ih definisemo direktno unutar recnika
"Petar Petrovic": petar,
"Marko Markovic": marko,
"Ivan Ivanovic": {
"ime": "Ivan",
"prezime": "Ivanovic",
"zanimanje": "TV voditelj",
"godiste": 1975,
"imena dece": [],
"adresa": {
"grad": "Beograd",
"ulica": "Knjeginje Zorke",
"broj": 25
}
},
}
print("Marko Markovic zivi u ulici: ",adresar["Marko Markovic"]["adresa"]["ulica"])
stevan = {
"ime": "Stevan",
"prezime": "Markovic",
"zanimanje": "Fotograf",
"godiste": 1970,
"imena dece": ["Iva", "Ana"],
"adresa": {
"grad": "Novi Sad",
"ulica": "Zidarska",
"broj": 13
}
}
adresar["Stevan Markovic"] = stevan # naravno mozemo dodati novu osobu u adresar (recnik)

5634
romeo and juliet.txt Normal file

File diff suppressed because it is too large Load Diff

53
sekspir.py Normal file
View File

@ -0,0 +1,53 @@
# ucitati fajl u promenljivu
# podelimo taj tekst u reci
# napravimo recnik koji ce cuvati (brojac) broj ponavljanja svake reci u tekstu
#
# proci cemo kroz sve reci
# ako smo vec videli tu rec
# povecamo brojac za tu rec
# ako je to nova rec
# namestimo brojac za tu rec na 1
fajl = open("romeo and juliet.txt")
tekst = fajl.read()
fajl.close()
tekst = tekst.replace("."," ") # zamenjujemo tacke za razmake (efekivno izbacujemo tacke iz teksta)
tekst = tekst.replace("!"," ") # zamenjujemo uzvicnike za razmake
tekst = tekst.replace("?"," ") # zamenjujemo upitnike za razmake
tekst = tekst.replace("\""," ") # zamenjujemo navodnike za razmake
tekst = tekst.replace("-"," ") # zamenjujemo crtice za razmake
tekst = tekst.replace(","," ") # zamenjujemo zareze za razmake
# tekst = tekst.replace("\n"," ") # zamenjujemo znakove za novi red za razmake (ovo u nasem slucaju nije neophodno)
reci = tekst.split() # delimo tekst u reci (delimo ga tako sto svaki put kada naidjemo na razmak
# pravimo novu rec
tabela = {} # kreiramo recnik koji ce cuvati gorepomenute brojace
for rec in reci:
if rec not in tabela: # ako rec nije u tabeli, tj. ako nismo videli rec pre toga
tabela[rec] = 1
else: # u suprotnom rec je vec u tabeli, tj. rec smo vec videli
tabela[rec] += 1
#print(tabela) # mozemo ispisati celu tabelu
print("Romeo se pominje", tabela["Romeo"], "puta")
print("Julija se pominje", tabela["Juliet"], "puta")
if tabela["Romeo"]>tabela["Juliet"]:
print("Romeo se pominje vise puta od Julije")
else:
print("Julija se pominje vise puta od Romea")
# mozemo i da sortiramo reci da bi videli koje se najvise ponavljaju (ovo je malo komplikovaniji primer)
sortirane_reci = sorted(tabela.items(), key=lambda x: x[1], reverse=True)
# ispismo 20 najucestalijih reci
for i in range(20):
print(sortirane_reci[i][0],"=>", sortirane_reci[i][1])

3
tekst.txt Normal file
View File

@ -0,0 +1,3 @@
ovo je neki tekstualni fajl
da bi pokazali kako citanje fajlova radi
u pajtonu