Vapaa kuvaus

Aloituksia

3

Kommenttia

65

  1. 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+ListMikä+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:aanuusiKirja+=+{"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.
  2. 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:aanuusiKirja+=+{"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.