PythonPodcast 40 - itnett/FTD02H-N GitHub Wiki

Python Mentorkurs – Episode 5: Filbehandling og Avanserte Datastrukturer

Mentor: "Velkommen tilbake! I forrige episode lærte vi om feilhåndtering, debugging, og unntaksbehandling. Nå skal vi ta det et steg videre og se nærmere på hvordan vi kan jobbe med filer i Python, samt utforske mer avanserte datastrukturer som ordbøker og sett. Dette er kraftige verktøy for å organisere og manipulere store mengder data. La oss komme i gang!"


Filbehandling i Python

Mentor: "Når du jobber med programmer, må du ofte lagre eller hente data fra eksterne filer. Python gir deg enkle verktøy for å lese fra og skrive til filer. Vi bruker funksjonen open() for å åpne filer, og vi kan lese, skrive, eller til og med legge til data i dem."


Lesing fra en Fil

Mentor: "La oss starte med å lese innholdet fra en fil. Her er et eksempel som leser en tekstfil og skriver innholdet ut på skjermen."

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

Mentor: "Her åpner vi filen eksempel.txt i lesemodus ("r"), leser innholdet med read() og skriver det ut. Ved å bruke with sikrer vi at filen blir lukket automatisk etter at vi er ferdige med den."


Skriving til en Fil

Mentor: "Hva om vi vil lagre informasjon i en fil? Vi kan bruke open() i skrivemodus ("w") for å skrive til en fil. Her er et eksempel:"

with open("resultat.txt", "w") as fil: fil.write("Dette er resultatene fra dagens test.")

Mentor: "Denne koden oppretter en fil kalt resultat.txt (eller overskriver den hvis den allerede finnes), og skriver en linje med tekst til den. Hvis du vil legge til data i stedet for å overskrive, bruker du skrivemodus "a" (append-modus)."


Legge til Data i en Fil

with open("resultat.txt", "a") as fil: fil.write("\nLegger til mer informasjon.")

Mentor: "Ved å bruke append-modus ("a") legges den nye linjen til slutten av filen, i stedet for å overskrive det som allerede står der. Dette er nyttig når du for eksempel lagrer logger eller brukerdata."


Ordbøker i Python

Mentor: "Nå skal vi se på en kraftig datastruktur kalt 'ordbøker' (engelsk: dictionaries). En ordbok i Python lagrer data i nøkkel-verdi-par. Tenk på det som en faktisk ordbok der du slår opp et ord (nøkkelen) og får en definisjon (verdien)."

student = { "navn": "Ola", "alder": 20, "fag": "Matematikk" }

Mentor: "Her har vi definert en ordbok med tre nøkkel-verdi-par: 'navn', 'alder' og 'fag'. For å hente ut informasjon bruker vi nøklene."

print(student["navn"]) # Skriver ut: Ola


Legge til og Endre Verdier i Ordbøker

Mentor: "Du kan legge til nye nøkkel-verdi-par i ordbøker, eller endre eksisterende verdier."

student["karakter"] = "A" # Legger til ny nøkkel-verdi-par student["alder"] = 21 # Endrer verdien for 'alder' print(student)

Mentor: "Nå har vi lagt til en ny nøkkel, 'karakter', og endret alderen til 21. Ordbøker er veldig fleksible og nyttige for å lagre strukturerte data."


Set – En Unik Samling av Elementer

Mentor: "En annen nyttig datastruktur er 'set' (på norsk: sett). Et sett er en uordnet samling av unike elementer. Det betyr at hvert element kun kan forekomme én gang. Set er nyttige når du vil fjerne duplikater fra en liste eller utføre mengdeoperasjoner som union eller snitt."

tall = {1, 2, 3, 4, 4, 5} print(tall) # Skriver ut: {1, 2, 3, 4, 5}

Mentor: "Selv om vi skrev 4 to ganger, inneholder settet bare én forekomst av 4. Set er også veldig raske når det gjelder å sjekke om et element finnes i settet."

if 3 in tall: print("3 er i settet")


Mengdeoperasjoner med Set

Mentor: "Set lar deg utføre mengdeoperasjoner som union (kombinere to sett) og snitt (finne felles elementer)."

a = {1, 2, 3} b = {3, 4, 5} print(a.union(b)) # Skriver ut: {1, 2, 3, 4, 5} print(a.intersection(b)) # Skriver ut: {3}

Mentor: "Her kombinerte vi settene a og b med union(), og fant de felles elementene med intersection(). Slike operasjoner er veldig nyttige når du jobber med datasett."


Filbehandling med Store Datasett

Mentor: "Hva om du jobber med store filer eller datasett? Python kan håndtere store datamengder ved å lese filen linje for linje i stedet for å lese hele filen på en gang. Dette er spesielt nyttig når du jobber med store filer som ikke får plass i minnet."

with open("store_data.txt", "r") as fil: for linje i fil: prosess_data(linje)

Mentor: "Denne koden leser en fil linje for linje og kaller en funksjon prosess_data() for hver linje. Dette sikrer at du kan jobbe med store filer uten å bruke opp all tilgjengelig minne."


Oppsummering

Mentor: "I denne episoden har vi lært om filbehandling – hvordan vi kan lese fra og skrive til filer. Vi har også sett på avanserte datastrukturer som ordbøker og sett, som hjelper oss med å organisere data på en effektiv måte. Å kunne håndtere filer og jobbe med strukturerte data er avgjørende for mange programmer."


Praktisk Oppgave: Arbeide med Filer og Ordbøker

Mentor: "Her er en oppgave for deg: Lag et program som leser en fil med studentinformasjon (navn, alder, karakterer) og lagrer informasjonen i en ordbok. Deretter skriver programmet denne informasjonen til en ny fil i et formatert oppsett."


Mentor: "I neste episode skal vi dykke ned i API-er, som lar oss kommunisere med andre programmer og tjenester. Øv deg på filbehandling og ordbøker, så er du godt forberedt til neste steg!"


Denne episoden har bygget videre på grunnleggende ferdigheter, og deltageren lærer nå mer avanserte teknikker som filbehandling og bruk av datastrukturer som ordbøker og sett. Gjennom praktiske eksempler og oppgaver får deltageren trening i å jobbe med store datasett og organisere informasjon på en effektiv måte.