Python_Essentials_14 - itnett/FTD02H-N GitHub Wiki

Her er en neste side i din GitHub Wiki som fortsetter der vi slapp. Denne siden vil gå dypere inn på mer avanserte Python-emner som filhåndtering, unntakshåndtering, og objektorientert programmering (OOP). Den er fortsatt tilpasset en nybegynner uten forkunnskaper, med bruk av emoji, fet tekst og koder.


📂 Filhåndtering i Python

Filhåndtering lar oss lese fra og skrive til filer. Dette er nyttig når vi vil lagre data mellom programkjøringer, som for eksempel å lagre brukerinformasjon eller analyseresultater.

Hvordan lese fra en fil? 🗒️

For å lese fra en fil, bruker vi funksjonen open() med modus 'r' for å lese. Her er et eksempel på hvordan du kan lese hele innholdet i en tekstfil.

with open("min_fil.txt", "r") as fil:  # 'r' står for "read" (les)
    innhold = fil.read()  # Leser hele innholdet
    print(innhold)

Hvordan skrive til en fil? ✍️

For å skrive til en fil, bruker vi modus 'w' (skriv) eller 'a' (legg til). Her er et eksempel:

with open("min_fil.txt", "w") as fil:  # 'w' betyr "write" (skriv)
    fil.write("Hei, verden!")  # Skriver til filen, overskriver eksisterende innhold
  • 'w' overskriver eksisterende filinnhold.
  • 'a' legger til informasjon på slutten av filen uten å slette eksisterende innhold.

Tips:

  • Bruk alltid with-blokken for filhåndtering. Dette sørger for at filen automatisk lukkes etter bruk, selv om det oppstår feil.
  • Når du åpner filer, kan du få en FileNotFoundError hvis filen ikke finnes. Vi kan håndtere dette ved å bruke unntakshåndtering.

🚨 Unntakshåndtering i Python

Unntak (eller "exceptions") brukes til å håndtere feil som kan oppstå under programkjøring. Dette forhindrer at programmet krasjer.

Hvordan bruke try/except? 🔧

Vi bruker try og except for å fange opp feil.

try:
    tall = int(input("Skriv inn et tall: "))
    print(f"Du skrev {tall}")
except ValueError:  # Hvis brukeren ikke skriver inn et tall
    print("Dette var ikke et gyldig tall!")
  • try: Prøver å kjøre koden inne i blokken.
  • except: Fanger opp feil som oppstår i try-blokken og håndterer dem.

Enda mer robust kode: finally 🔄

Blokken finally kjøres alltid, enten det oppstår en feil eller ikke. Dette brukes ofte til å rydde opp ressurser som å lukke filer eller koblinger.

try:
    fil = open("data.txt", "r")
    innhold = fil.read()
finally:
    fil.close()  # Sørger for at filen lukkes uansett

🐍 Objektorientert Programmering (OOP) i Python

Objektorientert programmering lar oss organisere kode i klasser og objekter. Dette gjør det lettere å jobbe med store kodeprosjekter ved å dele dem opp i logiske enheter.

Klasser og Objekter 👨‍🏫

En klasse er som en mal for objekter. Du kan tenke på en klasse som en blåkopi, og objekter som de faktiske tingene du lager ut fra denne blåkopien.

class Bil:
    def __init__(self, merke, farge):
        self.merke = merke  # Egenskapen 'merke'
        self.farge = farge  # Egenskapen 'farge'
    
    def start_motor(self):
        print(f"{self.merke}-bilen starter!")

Her har vi definert en klasse som heter Bil med to egenskaper: merke og farge, samt en metode start_motor() som starter bilen.

Lage et objekt av klassen 🚗

For å bruke klassen, lager vi et objekt ut fra den:

min_bil = Bil("Tesla", "rød")  # Lager et objekt av klassen 'Bil'
min_bil.start_motor()  # Kaller metoden start_motor

Arv i OOP 🧬

Arv lar oss lage en ny klasse som arver egenskaper og metoder fra en annen klasse. Her er et eksempel hvor vi lager en Elbil-klasse som arver fra Bil:

class Elbil(Bil):
    def lad(self):
        print(f"{self.merke}-bilen lader opp batteriet!")

Nå kan vi lage en elektrisk bil som både kan starte motoren (fra Bil-klassen) og lade (en ny metode i Elbil-klassen):

min_elbil = Elbil("Tesla", "hvit")
min_elbil.start_motor()
min_elbil.lad()

Oppsummering av OOP:

  • Klasser: En mal for objekter.
  • Objekter: Instanser av klasser.
  • Metoder: Funksjoner inne i klasser.
  • Arv: Lar oss lage nye klasser basert på eksisterende.

🎯 Neste steg

Gratulerer, du har nå gått gjennom mange viktige Python-konsepter! Her er en kort oppsummering av hva du har lært:

  • 📂 Filhåndtering: Lese og skrive til filer, håndtere filbaner.
  • 🚨 Unntakshåndtering: Hvordan fange feil og sikre at programmet kjører videre.
  • 🐍 Objektorientert Programmering: Opprettelse av klasser, objekter og arv.

Fortsett gjerne med å øve på disse konseptene i små prosjekter. Det neste naturlige steget kan være å utforske mer avanserte Python-emner som iterators, generators, og decorators.

Lykke til videre på din Python-reise! 🐍✨


Tips til GitHub Wiki-format

  1. Overskrifter og struktur: Bruk overskrifter (#, ##, ###) for å dele opp innholdet i logiske seksjoner.
  2. Emoji-bruk: Legg til relevante emojier for å gi en visuell fremstilling av innholdet, noe som gjør det mer engasjerende.
  3. Kodeblokker: Bruk kodeblokker for å vise Python-eksempler. Dette hjelper leseren å skille mellom forklaringer og kode.
  4. Fet skrift: Uthev viktige begreper som variabler, funksjoner, og klasser.
  5. Oppsummering: Avslutt alltid med en oppsummering av læringspunktene for å forsterke viktige konsepter.

Ved å følge denne strukturen kan du skape en godt organisert og brukervennlig Python-guide som enkelt kan publiseres på GitHub.