Lær deg Python_2 - itnett/FTD02H-N GitHub Wiki
Dykking dypere inn i Python 🐍
Nå som vi har fått en oversikt over emnene, la oss utforske hvert område mer detaljert med praktiske eksempler og tips.
Programstrukturer 🏗️
Variabler og datatyper
Eksempel:
# Heltall (int)
alder = 25
# Flyttall (float)
pi = 3.14
# Streng (string)
navn = "Ola Nordmann"
# Boolsk (bool)
er_student = True
Tips:
- Variabelnavn bør være beskrivende og følge en konsistent navngivningskonvensjon.
- Bruk kommentarer (
#
) for å forklare koden din.
Kontrollstrukturer
If-setninger:
if alder >= 18:
print("Du er myndig.")
else:
print("Du er ikke myndig.")
Tips:
- Indentering er viktig i Python; sørg for å bruke fire mellomrom eller én tab.
- Bruk logiske operatorer (
and
,or
,not
) for komplekse betingelser.
Løkker
For-løkke:
for i in range(5):
print(f"Tallet er {i}")
While-løkke:
tall = 0
while tall < 5:
print(f"Tallet er {tall}")
tall += 1
Tips:
range()
genererer en sekvens av tall.- Pass på å unngå uendelige løkker ved å oppdatere løkkekontrollen riktig.
Datastrukturer 📊
Lister
Eksempel:
frukt = ["eple", "banan", "appelsin"]
frukt.append("druer")
print(frukt)
Tips:
- Lister er mutable; du kan legge til, fjerne og endre elementer.
- Iterer over lister med løkker for å behandle elementene.
Tupler
Eksempel:
koordinater = (10, 20)
print(koordinater[0])
Tips:
- Tupler er immutable; bruk dem for data som ikke skal endres.
- Kan brukes som nøkler i ordbøker hvis de inneholder immutable objekter.
Sett
Eksempel:
unikke_tall = {1, 2, 3, 2, 1}
print(unikke_tall) # Output: {1, 2, 3}
Tips:
- Sett brukes for å lagre unike elementer.
- Effektive for medlemskapstesting (
in
-operatoren).
Ordbøker
Eksempel:
student = {"navn": "Kari", "alder": 22, "studie": "Informatikk"}
print(student["navn"])
Tips:
- Nøklene i en ordbok må være immutable (f.eks. strenger, tall, tupler).
- Bruk
.items()
,.keys()
, og.values()
for å iterere over ordbøker.
Funksjoner og metoder 🔧
Definere funksjoner
Eksempel:
def hils(navn):
return f"Hei, {navn}!"
print(hils("Per"))
Tips:
- Bruk meningsfulle funksjonsnavn som beskriver hva funksjonen gjør.
- Dokumenter funksjoner med docstrings.
Parameteroverføring
Eksempel:
def legg_til(a, b=0):
return a + b
print(legg_til(5)) # Output: 5
print(legg_til(5, 3)) # Output: 8
Tips:
- Standardparameterverdier gjør funksjoner mer fleksible.
- Bruk
*args
og**kwargs
for variabelt antall argumenter.
Objektorientert programmering 🧩
Klasser og objekter
Eksempel:
class Bil:
def __init__(self, merke, modell):
self.merke = merke
self.modell = modell
def kjør(self):
print(f"{self.merke} {self.modell} kjører.")
bil1 = Bil("Toyota", "Corolla")
bil1.kjør()
Tips:
__init__
er konstruktøren som initialiserer objekter.self
refererer til instansen av klassen.
Arv
Eksempel:
class ElBil(Bil):
def lad(self):
print(f"{self.merke} {self.modell} lader.")
elbil = ElBil("Tesla", "Model S")
elbil.kjør()
elbil.lad()
Tips:
- Arv lar deg gjenbruke kode og utvide funksjonalitet.
- Bruk
super()
for å kalle metoder fra foreldresklassen.
Debugging, testing og unntaksbehandling 🐞
Unntaksbehandling
Eksempel:
try:
resultat = 10 / 0
except ZeroDivisionError:
print("Kan ikke dele med null!")
finally:
print("Ferdig.")
Tips:
- Håndter spesifikke unntak for bedre feilhåndtering.
finally
-blokken kjører alltid, uansett om det oppstår et unntak eller ikke.
unittest
Testing med Eksempel:
import unittest
def legg_til(a, b):
return a + b
class TestMatte(unittest.TestCase):
def test_legg_til(self):
self.assertEqual(legg_til(2, 3), 5)
if __name__ == '__main__':
unittest.main()
Tips:
- Skrive tester sikrer at koden din fungerer som forventet.
- Kjør testene ofte for å fange opp feil tidlig.
API 🔌
requests
-biblioteket
Bruke Eksempel:
import requests
response = requests.get("https://api.github.com")
if response.status_code == 200:
data = response.json()
print(data)
else:
print("Feil ved henting av data.")
Tips:
- Kontroller alltid HTTP-statuskoden for å sikre vellykket forespørsel.
- Håndter nettverksunntak med
try
ogexcept
.
GUI 🖥️
Tkinter
Lage et enkelt vindu med Eksempel:
import tkinter as tk
root = tk.Tk()
root.title("Mitt første GUI")
label = tk.Label(root, text="Hei, verden!")
label.pack()
root.mainloop()
Tips:
- GUI-programmering er hendelsesdrevet; forstå hendelsesløkken.
- Organiser widgets med layouts som
pack()
,grid()
, ogplace()
.
UML 📈
Klassediagram
- Bruk UML-klassediagrammer for å planlegge klasser og deres relasjoner.
- Vis attributter, metoder, og arvforhold.
Eksempel:
+------------------+
| Bil |
+------------------+
| - merke |
| - modell |
+------------------+
| + kjør() |
+------------------+
^
|
+------------------+
| ElBil |
+------------------+
| + lad() |
+------------------+
Tips:
- Bruk verktøy som draw.io eller Lucidchart for å tegne UML-diagrammer.
- UML hjelper med å visualisere programstrukturen før koding.
Filbehandling 📁
Lese og skrive filer
Eksempel:
# Skrive til en fil
with open("test.txt", "w") as fil:
fil.write("Dette er en test.\n")
# Lese fra en fil
with open("test.txt", "r") as fil:
innhold = fil.read()
print(innhold)
Tips:
- Bruk
with
-setningen for å sikre at filer lukkes riktig. - Håndter unntak ved filtilgang, som
FileNotFoundError
.
Datasikkerhet 🔒
Input-validering
Eksempel:
bruker_input = input("Skriv inn et tall: ")
try:
tall = int(bruker_input)
except ValueError:
print("Vennligst skriv inn et gyldig tall.")
Tips:
- Aldri stol på brukerinput; valider og sanitér alltid data.
- Beskytt applikasjonen mot vanlige angrep som SQL-injeksjon og XSS.
Kryptering
Eksempel med hashlib
:
import hashlib
passord = "mitthemmeligePassord"
hash_object = hashlib.sha256(passord.encode())
hex_dig = hash_object.hexdigest()
print(hex_dig)
Tips:
- Lagre aldri passord i klartekst.
- Bruk sikre algoritmer og biblioteker for kryptering og hashing.
Neste steg 🚶♂️
For å styrke din forståelse, prøv å implementere små programmer som bruker disse konseptene. Her er noen forslag:
- Lag et program som administrerer en liste over gjøremål ved hjelp av lister og ordbøker.
- Bygg en enkel kalkulator som bruker funksjoner for hver operasjon.
- Opprett en klasse for en bankkonto som kan sette inn og ta ut penger, og håndter unntak for overtrekk.
Ressurser 📚
- Offisiell Python-dokumentasjon: docs.python.org
- W3Schools Python Tutorial: w3schools.com/python/
- Python for Everybody (gratis e-bok): py4e.com
Avsluttende ord 🎉
Å lære programmering er en kontinuerlig prosess. Fortsett å eksperimentere, lese og skrive kode. Ikke vær redd for å feile; hver feil er en mulighet til å lære noe nytt. Lykke til på din programmeringsreise! 🚀