Valikko
Aloita keskustelu
Hae sivustolta
Kirjaudu sisään
Keskustelu
Viihde
Alennuskoodit
Black Friday 2024
Lainaa
Treffit
Säännöt
Chat
Keskustelu24
profiilit
Katjaana
profiilit
Katjaana
Katjaana
Vapaa kuvaus
Aloituksia
3
Kommenttia
65
Uusimmat aloitukset
Suosituimmat aloitukset
Uusimmat kommentit
Voi+hyvänen+aika,+että+tämä+on+VAI-KE-AA!!!+Laitoin+tuonne+alemmaksi+uuden+koodini.+Mutta+kun+sain+alun+toimimaan,+niin+nyt+se+herjaa+
#Etsitään+onko+List:ssä+kirjaa+-kohdan+riviä+41:+for+x+in+List
Mikä+tuossa+x:ssä+nyt+on+vikana,+kun+aiemmin+siinä+ei+ollut???+Ja+99-rivillä+on+myös+jotain+sanomista...
#_Tämä+on+tehtäväharjoitukseni,+joka+tallentaa,+jos+osaan+sen+tehdä.
tiedosto+=+open("kirjasto.txt",+"a")+#_Avataan+tiedosto,+johon+tallennetaan.
#_Poistin+alla+olevat,+sillä+olivat+kovakoodattuja.
#_List+=+[{"kirja":"Peppi+Pitkätossu",+"kirjailija":"Astrid+Lindgren",+"jv":"1945"},
#_{"kirja":"Vaahteramäen+Eemeli",+"kirjailija":"Astrid+Lindgren",+"jv":"1963"},
#_{"kirja":"Pikku+naisia",+"kirjailija":"Louisa+M.+Alcott",+"jv":"1868"},+
#_{"kirja":"Annan+nuoruusvuodet",+"kirjailija":"L.+M.+Montgomery",+"jv":"1908"}]
#_Alla+oleva+tallennusrutiini+tallentaa+yhden+kirjan+yhdelle+riville.
List+=+[{"kirja1",+"kirjailija1",+"jv1"
"kirja2",+"kirjailija2",+"jv2"
"kirja3",+"kirjailija3",+"jv3"}]
#_Kirjat+luetaan+tiedostoon+talteen+alla+olevalla+tavalla.
def+lataaTiedot(tiedosto):
++++lista+=+[]
++++with+open(tiedosto,+'r')+as+tiedostoObjekti:
++++++++++++for+rivi+in+tiedostoObjekti:
++++++++++++++++kirja+=+rivi.replace("\n","").split(',')
++++++++++++if+len(kirja)+==+3:
++++++++++++++++lista.append({"kirja":+kirja[0],+"kirjailija":+kirja[1],+"jv":+kirja[2]})
++++return+lista
#_Kirjat+tulostetaan+alla+olevalla+tavalla.
print(lataaTiedot("kirjasto.txt"))
[{'kirja':+'kirja1',+'kirjailija':+'kirjailija1',+'jv':+'jv1'},+{'kirja':+'kirja2',+'kirjailija':+
'kirjailija2',+'jv':+'jv2'},+{'kirja':+'kirja3',+'kirjailija':+'kirjailija3',+'jv':+'jv3'}]
tiedosto.close()+#_Suljetaan+tiedosto,+johon+on+tallennettu.
#-----ALKAA+Funktioiden+esittely----------------------------------------
#Näitä+kahta+funktiota+tarvitaan,+kun+etsitään,+onko+kirjastossa+haluttua+kirjaa+ja
#kun+poistetaan+kirjaa.
#Etsitään+onko+List:ssä+kirjaa.
def+onkoKirjaa(kirja):
++++for+x+in+List:
++++++++if+x["kirja"]==kirja:+return+True
++++return+False
#Palautetaan+kirja.
def+getKirja(kirja):
++++for+x+in+List:
++++++++if+x["kirja"]==kirja:+return+x
++++return+None+
#-----LOPPUU+Funktioiden+esittely---------------------------------------
print("Tervetuloa+Kirjakauppaan!",+"\n",+"\n"+#Näin+saat+tekstiin+rivinvaihdon+lisäksi+välirivin.
"Uuden+kirjan+lisäys+Kirjakauppaan:",+"\n"+
"Jos+et+nyt+halua+lisätä+kirjaa,+niin+lisää+numero+nolla+seuraaviin+kohtiin,+muutoin+anna+pyydetyt+tiedot:")
kirja+=+input("Kirjan+nimi:+")
kirjailija+=+input("Kirjailijan+nimi:+")
jv+=+input("Julkaisuvuosi:+")
#-----ALKAA+Lisätään+appendilla+uusi+kirja------------------------------
#Lisätään+uusi+tuote+List:aan
uusiKirja+=+{"kirja":kirja,+"kirjailija":kirjailija,+"jv":jv}
if+kirja+!=+"0"+and+kirjailija+!=+"0"+and+jv+!=+"0":+#Blokkaa+pois+sen,+että+nollat+tallentuisivat+uutena+kirjana+jne.
++++List.append(uusiKirja)
#-----LOPPUU+Lisätään+appendilla+uusi+kirja-----------------------------
tiedosto+=+open("kirjasto.txt",+"w")+#Tiedostokahvalle+nimeksi+tiedosto+ja+uuden+
#tiedoston+avaaminen+kirjoittamista+varten.
#Pyyntö+kirjoittaa+yllä+pyydetyt+tiedot+tiedostoon+riveittäin.
tiedosto.write(kirja+++"\n")
tiedosto.write(kirjailija+++"\n")
tiedosto.write(jv+++"\n")
tiedosto.close()+#Tiedoston+sulkeminen.
tiedosto+=+open("kirjasto.txt",+"r")+#Tiedoston+avaaminen+lukemista+varten.+
++
while+True:
++++
++++print("Anna+valitsemasi+kirjan+nimi,+niin+tulostan+sen,+jos+se+löytyy+kirjastosta.")
++++print("Komennolla+Kaikki+tulostetaan+kaikki+kirjaston+kirjat.")+
++++print("Komennolla+Poista+poistetaan+valitsemasi+kirjaston+kirja.")
++++print("Komennolla+Poistu,+tämä+kirjasto-ohjelma+sulkeutuu.")
++++
++++valinta+=+input().capitalize()+#Asiakas+voi+syöttää+vastauksensa,+joka+alkaa+pienellä+kirjaimella+esim.+poistu+->+Poistu
+++++
++++if+valinta+==+"Poistu":+#Ohjelmasta+poistuminen.
++++++++break
++++elif+valinta+==+"Kaikki":+#Kaikkien+kirjaston+kirjojen+tulostaminen.
++++++++for+x+in+List:
++++++++++++print(x["kirja"])
++++++++++++print(x["kirjailija"])
++++++++++++print(x["jv"],+"\n")+#\n+erottelee+tulokset+toisistaan+=+tyhjä+rivi
+
++++elif+onkoKirjaa(valinta):+#Tulostaa+pyydetyn+kirjan,+jos+se+on+kirjastossa.
++++++++print(getKirja(valinta))
++++#elif+valinta+==+"Poista":
++++elif+onkoKirjaa(valinta):+#Etsitään,+onko+List:ssä+kirjaa.
++++++++print(getKirja(valinta))+#Palautetaan+kirja.
++++elif+valinta+==+"Poista":+#Poistaa+pyydetyn+kirjan+kirjastosta.
++++++poistettava+=+input+("Minkä+kirjan+haluat+poistaa?+")
++++++for+i+in+range(len(List)):
++++++++if+List[i]['kirja']+==+poistettava:
++++++++++del+List[i]
++++++++++break
++++++print("Jäljelle+jääneet+kirjat:\n"+++",+".join(x["kirja"]+for+x+in+List))
++++else:
++++++++print("Syötteesi+oli+virheellinen,+tai+tätä+kirjaa+ei+ole+tässä+kirjastossa.")
tiedosto.close()+#Suljetaan+tiedosto.
24.12.2020 19:01
Kiitos+jälleen.+Koitan+tätä+ohjetta+tänään-huomenna!+Josko+se+tästä+muotoutuisi.+Olisi+kiva+saada+tehtyä+(vaikkakin+aloittelijan+tyyliin)+jotain+'pysyvää'!
24.12.2020 07:59
Kiitos!+Teenkö+ensin+resurssienhallintaan+tiedosto.txt:n,+johon+syötän+'alku'kirjaston?+Ja+sinne+ne+uudetkin+sitten+päätyvät?
22.12.2020 15:30
Mutta+miten+se+latausrutiini+tehdään...?
22.12.2020 14:24
List+=+[{"kirja":"Peppi+Pitkätossu",+"kirjailija":"Astrid+Lindgren",+"jv":"1945"},
{"kirja":"Vaahteramäen+Eemeli",+"kirjailija":"Astrid+Lindgren",+"jv":"1963"},
{"kirja":"Pikku+naisia",+"kirjailija":"Louisa+M.+Alcott",+"jv":"1868"},+
{"kirja":"Annan+nuoruusvuodet",+"kirjailija":"L.+M.+Montgomery",+"jv":"1908"}]
#-----ALKAA+Funktioiden+esittely----------------------------------------
#Näitä+kahta+funktiota+tarvitaan,+kun+etsitään,+onko+kirjastossa+haluttua+kirjaa+ja
#kun+poistetaan+kirjaa.
#Etsitään+onko+List:ssä+kirjaa.
def+onkoKirjaa(kirja):
++++for+x+in+List:
++++++++if+x["kirja"]==kirja:+return+True
++++return+False
#Palautetaan+kirja.
def+getKirja(kirja):
++++for+x+in+List:
++++++++if+x["kirja"]==kirja:+return+x
++++return+None+
#-----LOPPUU+Funktioiden+esittely---------------------------------------
print("Tervetuloa+Kirjakauppaan!",+"\n",+"\n"+#Näin+saat+tekstiin+rivinvaihdon+lisäksi+välirivin.
"Uuden+kirjan+lisäys+Kirjakauppaan:",+"\n"+
"Jos+et+nyt+halua+lisätä+kirjaa,+niin+lisää+numero+nolla+seuraaviin+kohtiin,+muutoin+anna+pyydetyt+tiedot:")
kirja+=+input("Kirjan+nimi:+")
kirjailija+=+input("Kirjailijan+nimi:+")
jv+=+input("Julkaisuvuosi:+")
#-----ALKAA+Lisätään+appendilla+uusi+kirja------------------------------
#Lisätään+uusi+tuote+List:aan
uusiKirja+=+{"kirja":kirja,+"kirjailija":kirjailija,+"jv":jv}
if+kirja+!=+"0"+and+kirjailija+!=+"0"+and+jv+!=+"0":+#Blokkaa+pois+sen,+että+nollat+tallentuisivat+uutena+kirjana+jne.
++++List.append(uusiKirja)
#-----LOPPUU+Lisätään+appendilla+uusi+kirja-----------------------------
tiedosto+=+open("kirjasto.txt",+"w")+#Tiedostokahvalle+nimeksi+tiedosto+ja+uuden+
#tiedoston+avaaminen+kirjoittamista+varten.
#Pyyntö+kirjoittaa+yllä+pyydetyt+tiedot+tiedostoon+riveittäin.
tiedosto.write(kirja+++"\n")
tiedosto.write(kirjailija+++"\n")
tiedosto.write(jv+++"\n")
tiedosto.close()+#Tiedoston+sulkeminen.
tiedosto+=+open("kirjasto.txt",+"r")+#Tiedoston+avaaminen+lukemista+varten.+
++
while+True:
++++
++++print("Anna+valitsemasi+kirjan+nimi,+niin+tulostan+sen,+jos+se+löytyy+kirjastosta.")
++++print("Komennolla+Kaikki+tulostetaan+kaikki+kirjaston+kirjat.")+
++++print("Komennolla+Poista+poistetaan+valitsemasi+kirjaston+kirja.")
++++print("Komennolla+Poistu,+tämä+kirjasto-ohjelma+sulkeutuu.")
++++
++++valinta+=+input().capitalize()+#Asiakas+voi+syöttää+vastauksensa,+joka+alkaa+pienellä+kirjaimella+esim.+poistu+->+Poistu
+++++
++++if+valinta+==+"Poistu":+#Ohjelmasta+poistuminen.
++++++++break
++++elif+valinta+==+"Kaikki":+#Kaikkien+kirjaston+kirjojen+tulostaminen.
++++++++for+x+in+List:
++++++++++++print(x["kirja"])
++++++++++++print(x["kirjailija"])
++++++++++++print(x["jv"],+"\n")+#\n+erottelee+tulokset+toisistaan+=+tyhjä+rivi
+
++++elif+onkoKirjaa(valinta):+#Tulostaa+pyydetyn+kirjan,+jos+se+on+kirjastossa.
++++++++print(getKirja(valinta))
++++#elif+valinta+==+"Poista":
++++elif+onkoKirjaa(valinta):+#Etsitään,+onko+List:ssä+kirjaa.
++++++++print(getKirja(valinta))+#Palautetaan+kirja.
++++elif+valinta+==+"Poista":+#Poistaa+pyydetyn+kirjan+kirjastosta.
++++++poistettava+=+input+("Minkä+kirjan+haluat+poistaa?+")
++++++for+i+in+range(len(List)):
++++++++if+List[i]['kirja']+==+poistettava:
++++++++++del+List[i]
++++++++++break
++++++print("Jäljelle+jääneet+kirjat:\n"+++",+".join(x["kirja"]+for+x+in+List))
++++else:
++++++++print("Syötteesi+oli+virheellinen,+tai+tätä+kirjaa+ei+ole+tässä+kirjastossa.")
tiedosto.close()+#Suljetaan+tiedosto.
22.12.2020 13:48
4 / 4