-
Notifications
You must be signed in to change notification settings - Fork 2
Python_Essentials_16
Her er neste side i GitHub Wiki-formatet, med fokus på OOP (Objektorientert Programmering), feilhåndtering, og filhåndtering i Python. Igjen optimalisert for nybegynnere med ingen forkunnskaper, og med bruk av emoji, formatering, og enkel forklaring.
Objektorientert programmering (OOP) er en måte å organisere kode på ved å bruke klasser og objekter. Dette gjør det enklere å modellere virkelige ting i kode.
💡 Nøkkelbegreper i OOP:
- Klasse: En blåkopi for å lage objekter. Tenk på det som en oppskrift. 📋
- Objekt: En instans av en klasse, noe som er laget fra en klasse. Tenk på det som en kake laget fra en oppskrift. 🍰
- Attributt: Egenskapene til et objekt (som navn, alder, høyde).
- Metode: Funksjoner som kan kalles på objekter.
# Definerer en klasse kalt Hund
class Hund:
def __init__(self, navn, alder):
self.navn = navn # Attributt
self.alder = alder # Attributt
def bjeff(self): # Metode
print(f"{self.navn} sier Voff!")
# Lager et objekt av klassen Hund
min_hund = Hund("Fido", 3)
print(min_hund.navn) # Output: Fido
min_hund.bjeff() # Output: Fido sier Voff!
-
Innheting (Inheritance) 👨👧: Klassen kan "arve" egenskaper og metoder fra en annen klasse.
-
Polymorfisme 🦄: Evnen til å bruke samme metode på ulike objekter, men med ulik effekt.
-
Innkapsling (Encapsulation) 🛡️: Skjule objektets indre tilstand slik at det kun er tilgjengelig gjennom offentlige metoder.
-
Abstraksjon 🧩: Forenkling av komplisert kode ved å skjule detaljer og vise kun essensielle funksjoner.
# Definerer en foreldreklasse
class Dyr:
def __init__(self, navn):
self.navn = navn
def lag_lyd(self):
pass # Denne metoden defineres i underklassene
# Definerer en underklasse som arver fra Dyr
class Hund(Dyr):
def lag_lyd(self):
return "Voff!"
# En annen underklasse som arver fra Dyr
class Katt(Dyr):
def lag_lyd(self):
return "Mjau!"
# Oppretter objekter av Hund og Katt
hund = Hund("Fido")
katt = Katt("Misty")
print(hund.lag_lyd()) # Output: Voff!
print(katt.lag_lyd()) # Output: Mjau!
Unntak oppstår når noe uventet skjer under programkjøringen, som å dele på null eller prøve å åpne en fil som ikke finnes. For å hindre at programmet krasjer, kan vi bruke try/except-blokk for å håndtere unntakene.
try:
resultat = 10 / 0 # Dette vil forårsake en ZeroDivisionError
except ZeroDivisionError:
print("Feil: Kan ikke dele på null!")
Vi kan også bruke else
og finally
:
- else: Kjører hvis det ikke er noen feil.
- finally: Kjører alltid, enten det var en feil eller ikke (nyttig for å lukke filer eller rydde opp).
try:
with open("eksempel.txt", "r") as fil:
innhold = fil.read()
except FileNotFoundError:
print("Filen ble ikke funnet!")
else:
print(innhold)
finally:
print("Programmet er ferdig.")
Noen ganger vil du kaste (raise) et unntak selv, for eksempel for å validere input:
def del_tall(a, b):
if b == 0:
raise ValueError("b kan ikke være 0!")
return a / b
try:
print(del_tall(10, 0))
except ValueError as e:
print(e)
Python gjør det enkelt å jobbe med filer. Du kan åpne filer med open()
-funksjonen og lese eller skrive data til dem. Her er noen viktige filmoduser:
-
"r"
: Lesing (standardmodus) -
"w"
: Skriving (overskriver filen) -
"a"
: Legge til (appenere data til slutten av filen) -
"x"
: Opprett en ny fil (feiler hvis filen allerede finnes)
# Åpne filen i lesemodus
with open("min_fil.txt", "r") as fil:
innhold = fil.read() # Leser hele filen
print(innhold)
# Skriver til en ny fil (eller overskriver hvis den finnes)
with open("ny_fil.txt", "w") as fil:
fil.write("Dette er innholdet i filen.")
# Appender tekst til slutten av filen
with open("ny_fil.txt", "a") as fil:
fil.write("\nNy linje med tekst.")
-
Unngå å glemme å lukke filer: Bruk
with
-setningen for automatisk å lukke filer etter bruk. -
Lesing linje for linje: Bruk
readline()
ellerfor line in file
hvis du jobber med store filer. - Sjekk alltid om filen finnes før du prøver å åpne den for lesing.
- Øv deg på å lage dine egne klasser og objekter. Test ut arv og innkapsling! 🧑💻
- Prøv å håndtere feil i dine Python-programmer med try/except. Hva skjer når du deler et tall på null?
- Test ut filhåndtering ved å lese fra og skrive til tekstfiler. Sjekk ut hvordan Python kan automatisere arbeidet med filer.
🔗 Tilbake til oversikten | Neste side: Avanserte Python-Emner →
- Bruk tabeller når det er nyttig å sammenligne informasjon side om side.
- Liste opp viktige funksjoner ved å bruke punktlister eller nummererte lister for klarhet.
- Bruk emoji til å gjøre lesingen mer engasjerende, spesielt for nybegynnere!
Lykke til videre i Python-reisen din! 🚀
Dette avslutter gjennomgangen av Objektorientert Programmering (OOP), Feilhåndtering, og Filhåndtering i Python. 🎉 Hvis du har spørsmål eller ønsker å dykke dypere inn i noen av emnene, så er det bare å eksperimentere videre! 👩💻🐍
Ansvarsfraskrivelse:
Innholdet på denne wikisiden er generert helt eller delvis av kunstig intelligens (AI) og er ikke ment for informasjonsformål. Forfatteren fraskriver seg ethvert ansvar for nøyaktigheten, fullstendigheten eller påliteligheten av innholdet. Enhver handling du tar basert på informasjonen på denne siden er på eget ansvar og risiko.
Forfatteren fraskriver seg også ethvert ansvar for eventuelle likheter eller antydninger til likhet med annet publisert materiale. Enhver slik likhet er utilsiktet og uten ansvar. Det er leserens ansvar å gjennomføre plagiatkontroll og sikre at all bruk av innholdet fra denne siden er i samsvar med gjeldende regler og retningslinjer for opphavsrett og plagiering.
Det gis ingen garantier for at informasjonen på denne siden er i samsvar med gjeldende lover, regler eller retningslinjer. Leseren er selv ansvarlig for å verifisere nøyaktigheten og relevansen av informasjonen, og for å sikre korrekt kreditering av originale kilder.
Bruk av informasjonen på denne siden, inkludert risiko for plagiat eller brudd på opphavsrett, er på egen risiko.
Disklaimer 2
Alt innhold på denne plattformen er et resultat av en kreativ prosess som involverer både menneskelig input og generativ kunstig intelligens (AI). Tekstene er basert på bearbeidede prompts, og representerer en sammenslåing av publisistens tanker, ideer og AI-ens evne til å generere tekst.
Eventuelle likheter i rekkefølge, struktur, innhold, emnevalg, tematikk, avgrensninger eller oppstilling med annet materiale, enten kreditert eller ikke kreditert, publisert eller upublisert, er utilsiktet og tilfeldig.
Innholdet på denne plattformen er ikke ment å være en kilde til informasjon eller fakta, og skal ikke brukes som sådan. Dette er et eksperiment for å utforske potensialet og begrensningene ved generativ AI, både positive og negative, fordelaktige og ufordelaktige.
Vi oppfordrer leserne til å være kritiske og vurdere informasjonen i lys av dette. Vi tar ikke ansvar for eventuelle feil, unøyaktigheter eller misforståelser som kan oppstå som følge av bruk av innholdet på denne plattformen.
Disclaimer:
The information on this wiki page is generated entirely or partially by artificial intelligence (AI) and is not intended for informational purposes. The author disclaims any responsibility for the accuracy, completeness, or reliability of the content. Any action you take based on the information on this page is at your own responsibility and risk.
The author also disclaims any liability for any similarities or suggestions of similarity to other published material. Any such resemblance is unintentional and without liability. It is the reader's responsibility to conduct plagiarism checks and ensure that any use of the content from this page complies with applicable copyright and plagiarism rules and guidelines.
No guarantees are provided that the information on this page complies with applicable laws, rules, or guidelines. The reader is responsible for verifying the accuracy and relevance of the information and for ensuring proper crediting of original sources.
Use of the information on this page, including the risk of plagiarism or copyright infringement, is at your own risk.