initial
This commit is contained in:
commit
c77ec709b2
17974
20kleagues.txt
Normal file
17974
20kleagues.txt
Normal file
File diff suppressed because it is too large
Load Diff
21
LICENSE
Normal file
21
LICENSE
Normal 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
88
deniro.csv
Normal 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"
|
|
83
fajlovi.py
Normal file
83
fajlovi.py
Normal 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
26
iteriranje.py
Normal 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
19
ocene.py
Normal 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
103
recnici.py
Normal 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
5634
romeo and juliet.txt
Normal file
File diff suppressed because it is too large
Load Diff
53
sekspir.py
Normal file
53
sekspir.py
Normal 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])
|
||||
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user