Python_Essentials_18 - itnett/FTD02H-N GitHub Wiki

Her er neste side som dekker Feilhåndtering (Exceptions) og Filbehandling (Working with Files) i Python, optimalisert for GitHub Wiki-format med emoji, formatering, og enkel forklaring for en norsk målgruppe uten forkunnskaper.


🛑 Feilhåndtering i Python (Exceptions)

Hva er en Feilhåndtering? 💥

Feil, eller unntak (exceptions), oppstår når programmet ditt støter på noe uventet. Dette kan være en skrivefeil i koden eller forsøk på å utføre en operasjon som ikke er mulig, som å dele et tall på null.

Python tilbyr mekanismer for å fange og håndtere slike unntak slik at programmet ikke krasjer uventet.

Try/Except Blokker 🔄

En try/except-blokk brukes til å "fange" feil og håndtere dem på en kontrollert måte.

💡 Eksempel:

try:
    resultat = 10 / 0  # Dette vil forårsake en ZeroDivisionError
except ZeroDivisionError:
    print("Du kan ikke dele et tall på null!")

I dette tilfellet unngår vi at programmet krasjer, og vi gir brukeren en meningsfull feilmelding i stedet.

Flere Unntakstyper 🛠️

Du kan håndtere forskjellige typer unntak ved å bruke flere except-blokker.

try:
    tall = int(input("Skriv inn et tall: "))
    resultat = 10 / tall
except ZeroDivisionError:
    print("Kan ikke dele på null!")
except ValueError:
    print("Du må skrive inn et gyldig tall!")

Finally-blokken 🔚

En finally-blokk kjøres alltid, uansett om det oppstår en feil eller ikke. Den brukes ofte til å rydde opp etter at en try-blokk har kjørt, som å lukke filer eller koblinger.

try:
    fil = open("data.txt")
    data = fil.read()
except FileNotFoundError:
    print("Filen ble ikke funnet.")
finally:
    fil.close()  # Lukker filen uansett hva som skjer

📁 Arbeide med Filer i Python

Lese fra en Fil 📝

Du kan bruke Python til å lese innhold fra en fil. Bruk open()-funksjonen for å åpne filen, og sørg for å lukke den etterpå, eller bruk with-setningen som automatisk tar seg av dette.

💡 Eksempel på lesing fra en fil:

with open('eksempel.txt', 'r') as fil:
    innhold = fil.read()
    print(innhold)

Dette leser hele innholdet av filen og skriver det ut til konsollen.

Skrive til en Fil ✍️

For å skrive til en fil bruker du open() med modus 'w' (write). Hvis filen allerede eksisterer, vil den bli overskrevet.

💡 Eksempel på skriving til en fil:

with open('ny_fil.txt', 'w') as fil:
    fil.write("Dette er en ny linje med tekst.")

Append (Legge til i en Fil)

For å legge til tekst i en eksisterende fil uten å overskrive innholdet, bruker du modus 'a' (append).

with open('ny_fil.txt', 'a') as fil:
    fil.write("\nDette er en ny linje som legges til.")

Lesing Linje for Linje 🧾

Noen ganger vil du kanskje lese innholdet i en fil linje for linje, spesielt hvis filen er stor.

with open('eksempel.txt', 'r') as fil:
    for linje i fil:
        print(linje.strip())  # .strip() fjerner linjeskift (\n)

💡 Kombinere Feilhåndtering og Filbehandling

Feil kan oppstå når man jobber med filer, som å forsøke å åpne en fil som ikke eksisterer. Ved å bruke try/except-blokkene kan du håndtere disse feilene.

💡 Eksempel:

try:
    with open('ukjent_fil.txt', 'r') as fil:
        innhold = fil.read()
except FileNotFoundError:
    print("Filen ble ikke funnet.")

🎯 Oppsummering

  • Bruk try/except-blokker for å fange og håndtere feil i Python-programmet ditt.
  • Du kan bruke finally for å sikre at opprydding, som å lukke en fil, alltid skjer.
  • Python gjør det enkelt å lese fra og skrive til filer ved hjelp av open()-funksjonen og with-blokken.
  • Husk at du kan håndtere feil som oppstår når du jobber med filer, som å fange FileNotFoundError.

🚀 Neste steg: Arbeide med Mer Kompleks Feilhåndtering og Filbehandling

Gå videre til neste side for mer avanserte konsepter innen feilhåndtering, som å lage egendefinerte unntak, og mer komplekse filoperasjoner som filorganisering og datahåndtering i sanntid.

🔗 Tilbake til oversikten | Neste side: Avanserte Feilhåndteringsstrategier →


Dette avslutter gjennomgangen av Feilhåndtering og Filbehandling i Python. Fortsett å øve, og ikke vær redd for å gjøre feil – det er en naturlig del av læringsprosessen! 💪🐍