Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Python muistikirja tehtävä

Jabbe86 [22.08.2022 20:03:20]

#

Tehtävänä siis tehdä muistikirjaa pythonilla ja tehtävän palautuksessa saan seuraavaa:


Test 1 execution console - OK

Test 2 execution console
Execution time: 17.375999999999998 ms
(1) Lue muistikirjaa
(2) Lisää merkintä
(3) Tyhjennä muistikirja
(4) Lopeta

Mitä haluat tehdä?: 1
Traceback (most recent call last):
File "ohjelma.py", line 17, in <module>
tiedosto = open("muistikirja.txt", "r")
FileNotFoundError: [Errno 2] No such file or directory: 'muistikirja.txt'

Ja alla vielä se minun tekemä jonkun virheen(missä? mikä??) sisältävä koodi. PyCharmissa tää toimii, muuten mut yks väli tulostuu eritavalla kuin mallivastauksessa. Eli näin:

Mallissa:
(1) Lue muistikirjaa
(2) Lisää merkintä
(3) Tyhjennä muistikirja
(4) Lopeta

Mitä haluat tehdä?: 1
-Osta mehua

(1) Lue muistikirjaa
(2) Lisää merkintä
(3) Tyhjennä muistikirja
(4) Lopeta

Ja mun tekemänä:
(1) Lue muistikirjaa
(2) Lisää merkintä
(3) Tyhjennä muistikirja
(4) Lopeta

Mitä haluat tehdä?: 1
-Osta mehua
(1) Lue muistikirjaa
(2) Lisää merkintä
(3) Tyhjennä muistikirja
(4) Lopeta

jatkuu = True

while jatkuu:
    print("(1) Lue muistikirjaa")
    print("(2) Lisää merkintä")
    print("(3) Tyhjennä muistikirja")
    print("(4) Lopeta")
    print()

    valinta = (input("Mitä haluat tehdä?: "))

    if valinta == "1":
        tiedosto = open("muistikirja.txt", "r")
        sisalto = tiedosto.read()
        print(sisalto)
        tiedosto.close()


    elif valinta == "2":
        tiedosto = open("muistikirja.txt", "a")
        lisays = input("Kirjoita uusi merkintä: ")
        tiedosto.write(lisays)
        tiedosto.close()

    elif valinta == "3":
        tiedosto = open("muistikirja.txt", "w")
        tiedosto.close()
        print("Muistio tyhjennetty.")
        tiedosto.close()

    elif valinta == "4":
        jatkuu = False
        print("Lopetetaan.")

    else:
        print("Valintaa ei tunnistettu.")

vehkis91 [22.08.2022 21:53:14]

#

Näyttäisi puuttuvan tuo muistikirja.txt -tiedosto tuolta kansiosta virheilmoituksen mukaan.

Metabolix [22.08.2022 22:33:04]

#

Tiedoston lukemisessa pitäisi varmistaa, että tiedosto on olemassa. Tähän käy joko try-rakenne tai erillinen tarkastus kuten os.path.exists. Lisäksi taitaa käydä nyt niin, että useamman asian lisäys laittaa ne vain samalle riville tiedostossa, koska et ole laittanut rivin loppuun rivinvaihtomerkkiä "\n".

Oliko ohjeena ylipäänsä käyttää tiedostoja? Joskushan näitä tehtäviä tehdään vain listaan (jossa data ei tietenkään säily seuraavaan suoritukseen).

Jabbe86 [23.08.2022 06:44:55]

#

Tehtävä liittyy nimenomaan tiedostojen käyttämiseen eikä tehtävän palautus menisi läpi jos ei käytä tiedostoja.

Ja kyllähän sieltä rivin lopusta puuttui "\n".

lisäksi lisäsin alkuun koodipätkän, joka luo tyhjän tiedoston nimellä "muistikirja.txt" ja sulkee sen samantien, niin nyt homma pelaa.

Kiitos vastauksista.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta