Post Reply 
 
Thread Rating:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Python CSV upisivanje i pretraga
Author Message
ivicasb Offline
Novi korisnik
*

Posts: 12
Joined: Aug 2009
Reputation: 0
Post: #1
Python CSV upisivanje i pretraga
<!----- Prebaceno iz teme python -----!>

Bok Ljudi!
Evo imam jedan zadatak(python)tj 2(a i b) ovako glase;
a) Napišite program (udaljenost.py) koji ce zadanu tablicu odredišta i udaljenosti spremiti u datoteku pod nazivom odredista.csv. Tablica koju je potrebno upisati u datoteku je sljedeca:
Zagreb 95

Sisak 148

Zabok 70

Križevci 79

Karlovac 126
****ove gradove i kilometre zamislite u tablici tj.trebali bi biti u tablici,samo sto je meni pri pisanju ovako ispalo:( *********
Prilikom upisivanja podataka u datoteku koristite separator ";".
b) Nakon toga potrebno je napisati program (pretraga.py) koji de korisniku omoguditi unos željenog odredišta, a zatim iz datoteke odredista.csv ispisati odredište i udaljenost ukoliko je odredište pronađeno. U suprotnom, program ispisuje da odredište nije pronađeno.
E ja sam ga ovako srocio ,ali ne radi mi kako treba ,u nekoj je sitnici stvar...??

a)
udaljenost = []
udaljenost.append(["Zagreb", "95"])
udaljenost.append(["Sisak", "148"])
udaljenost.append(["Zabok", "70"])
udaljenost.append(["Križevci", "79"])
udaljenost.append(["Karlovac", "126"])

datoteka = open("udaljenost.csv", "w")
redak_kao_string = " "
for redak in udaljenost:
redak_kao_string = ";" .join(redak)
redak_kao_string= redak_kao_string +"\n"
datoteka.write(redak_kao_string)

datoteka.close()

b)
datoteka = open("odredista.csv", "r")
odredista=[]
for redak in datoteka:
redak = redak.rstrip()
redak_podlista = redak.split(";")
odredista.append(redak_podlista)
odrediste = raw_input("Unesite zeljeno odrediste: ")
odrediste_pronadeno = "ne"
for i in odredista:
if i[0] == odrediste:
odrediste_pronadeno = "da"
print "Pronadjeno odrediste je: ", odrediste
print "Odrediste i udaljenost: ", i[0], i[1]," km"
if odrediste_pronadeno == "ne":
print "Nema tog odredista"

Pa molim ako tko kuzi u cemu je caka,zasto nece zlocesti udav da radiHmmm i da me rijesi muka,thanks!
(This post was last modified: 21-08-2009 09:23 PM by ivicasb.)
21-08-2009 09:19 PM
Find all posts by this user Quote this message in a reply
schmrz Offline
____
*

Posts: 567
Joined: Feb 2007
Post: #2
RE: python
Nešta si ti to meni plaho zakomplikovao :-) Da si rekao koji dio koda te muči i da si fino formatirao kod onda bi i pregledao tvoj kod ali u ovom slučaju sam napisao potpuno drugi, elegantniji kod. Drugi put kada budeš postavljao kod, koristi bbcode tag code i koristi indentaciju.

udaljenost.py:
Code:
tabela = [("Zagreb", 95),
          ("Sisak", 148),
          ("Zabok", 70),
          ("Krizevci", 79),
          ("Karlovac", 126)];

out = ";".join(["%s=%s" % (dest, dist) for dest, dist in tabela])
handle = open("odredista.csv", "w")
handle.write(out)
handle.close()

pretraga.py:
Code:
handle = open("odredista.csv", "r")
destinations = handle.read().split(";")

destination = raw_input("Unesite zeljeno odrediste: ")

for dest in destinations:
  if dest.split("=")[0].upper() == destination.upper():
    print dest.split("=")[1]

Dalje možeš napraviti da prvi program od korisnika uzima podatke i unosi u fajl odredista.csv. Ako i dalje trebaš pomoć s tim gore kodom, ponovo ga postavi pravilno formatiranog i sa obašnjenjem šta ne radi.

Izgled fajla odredista.csv:
Code:
Zagreb=95;Sisak=148;Zabok=70; ...

I have no drinking problems. I drink. Get drunk. Fall down. NO PROBLEM
Registered As Linux User #484215
Moj skromni blog
Savjet za buduće programere: ovdje
22-08-2009 12:47 AM
Find all posts by this user Quote this message in a reply
ivicasb Offline
Novi korisnik
*

Posts: 12
Joined: Aug 2009
Reputation: 0
Post: #3
RE: python
Postovanje Schmrz !
*Drugi put kada budeš postavljao kod, koristi bbcode tag code i koristi indentaciju*-jesu li to nekakve interne opcije kod pisanja teksta na forumu i cemu sluze(rado cu to nauciti,ako mi objasnisDeda)
Ma problem mi je u zadatku a) ,b) bi trebao biti dobar!
Kad napisem kod i izvrsim ga ,izbacuje mi stalno koji god grad da upisem,da nema tog odredista!
Hvala ti na tvom modificiranom i elegantnijem rijesenju,ali mi bi trebali na faxu tj.ispitu tako rijesavati kako sam ja pisao(samo da radiRofl)
Pa ako uspijes rijesiti na "moj " nacin zadatak a) to bi bio jackpot.
pööööözdrav i hvala ti na brzim odgovorima
This forum is very cool and helpful!!
(This post was last modified: 22-08-2009 09:23 AM by ivicasb.)
22-08-2009 09:18 AM
Find all posts by this user Quote this message in a reply
schmrz Offline
____
*

Posts: 567
Joined: Feb 2007
Post: #4
RE: python
Sto se tiče formatiranje trebaš ovako postavljati kod:
Code:
[code]
printf(Hello World!);
[//code]

Naravno umjesto dva backslasha ide jedan :P
Pa po tvome kodu greška ti je u tome sto ne pišeš i čitaš iz istog fajla. Pišeš u udaljenost.csv a čitaš iz odredišta.csv

p.s. Tvoj kod za pretragu je case-sensitive tako da moraš tačno ukucati naziv grada onako kako je zapisan u onoj tabeli.

I have no drinking problems. I drink. Get drunk. Fall down. NO PROBLEM
Registered As Linux User #484215
Moj skromni blog
Savjet za buduće programere: ovdje
22-08-2009 11:19 AM
Find all posts by this user Quote this message in a reply
Post Reply 


Forum Jump:


User(s) browsing this thread: 1 Guest(s)