Hvert kodeeksempel står alene. Navne som navn og point genbruges på tværs af afsnit og skal omdøbes, hvis eksemplerne kopieres ind i samme fil.
# Kør i terminalen:
# python app.py
# Python læser filen linje for linje,
# og indrykning (mellemrum) ER syntaksen.
print("Hej verden")
Python er et fortolket sprog – ingen oversættelse først. Kommentarer startes med #. Blokke afgrænses af indrykning (4 mellemrum), ikke af krøllede parenteser.
navn = "Ada" # streng (str)
point = 0 # heltal (int)
pris = 12.5 # decimaltal (float)
aktiv = True # sandhedsværdi (bool)
intet = None # bevidst: ingen værdi
point += 10
print(type(navn)) # <class 'str'>
print(f"{navn}: {point} point") # f-streng
const/let – bare tildel. Brug f"..."-strenge til at sætte værdier ind i tekst; de er moderne og letteste at læse.# regning + - * / // % **
rest = 17 % 5 # 2
heltal = 17 // 5 # 3 (heltalsdivision)
pot = 2 ** 3 # 8 (potens)
# sammenligning
5 == "5" # False (streng ≠ tal)
5 != 3 # True
# logik: ord, ikke symboler
alder >= 18 and aktiv
alder < 18 or not aktiv
# sammensat
tekst = "på" if aktiv else "af"
Python bruger ordene and, or, not – ikke &&, ||, !. == er lighed; is er samme objekt (bruges mest til None).
if point >= 100:
print("Vundet!")
elif point > 0:
print("Fortsæt")
else:
print("Start spillet")
for i in range(3): # 0, 1, 2
print(i)
for navn in ["Ada", "Bo", "Cia"]:
print(navn)
while point < 100:
point += 10
range(3) giver 0, 1, 2. for x in liste går gennem værdierne direkte – ingen tæller nødvendig. Bemærk kolon og indrykning.
def gange(a, b=1):
return a * b
resultat = gange(6, 7) # 42
# Lambda: kort funktion i én linje
er_lige = lambda tal: tal % 2 == 0
def vis_besked(tekst):
print(tekst) # returnerer None
Funktioner defineres med def. Standardværdier (b=1) er valgfrie. En funktion uden return returnerer None.
tal = [4, 7, 2]
tal.append(9) # tilføj sidst
sidste = tal.pop() # fjern sidst
# List comprehension: byg ny liste
fordoblet = [t * 2 for t in tal]
store = [t for t in tal if t >= 5]
# Indbyggede
sum(tal) # 22
max(tal) # 9
sorted(tal) # [2, 4, 7, 9] (ny liste)
kopi = tal[:] # kopi, ikke samme liste
append, pop, sort, reverse ændrer selve listen. sorted giver en ny liste. Comprehensions er Pythons svar på map/filter i én linje.
elev = {
"navn": "Ada",
"klasse": "3x",
"point": 42
}
elev["navn"] # "Ada"
elev["point"] = 50
elev["niveau"] = 2 # tilføj ny nøgle
# Sikker adgang
by = elev.get("adresse", "Ukendt")
# Gennemløb
for nøgle, værdi in elev.items():
print(nøgle, værdi)
En ordbog samler navngivne værdier (som objekter i JavaScript). Brug .get() for at undgå KeyError når nøglen måske mangler.
rå = " Hej verden "
rå.strip().upper() # "HEJ VERDEN"
"verden" in rå # True
rå.replace("verden", "Python")
int("42") # 42
float("3.14") # 3.14
# "42" + 1 giver TypeError
int("42") + 1 # 43
pris = 12.5
f"{pris:.2f}" # "12.50"
try:
data = int("hej")
except ValueError:
print("Ikke et tal")
# Fange flere fejltyper
try:
tal = int(input("Skriv et tal: "))
resultat = 100 / tal
except ValueError:
print("Ugyldigt tal")
except ZeroDivisionError:
print("Kan ikke dele med 0")
try/except fanger fejl. Python har ingen ?. – brug .get() på ordbøger eller tjek med if x is not None.
import json
elev = {"navn": "Ada", "point": 42}
# Gem som JSON
json_tekst = json.dumps(elev)
with open("elev.json", "w", encoding="utf-8") as f:
f.write(json_tekst)
# Læs tilbage
with open("elev.json", encoding="utf-8") as f:
igen = json.load(f)
print(igen["navn"]) # "Ada"
with open(...) as f lukker filen automatisk. json.dumps laver objekt → streng; json.loads laver streng → objekt. json.dump/json.load (uden s) arbejder direkte med filer. Brug altid encoding="utf-8" – ellers kan æ, ø og å blive ødelagt, især på Windows.
navn = input("Hvad hedder du? ")
alder = int(input("Alder: ")) # input giver str
# Gentag indtil gyldigt tal
while True:
try:
alder = int(input("Alder: "))
break
except ValueError:
print("Skriv et tal!")
import random
import math
from datetime import datetime
random.randint(1, 6) # terning
random.choice(["a", "b"]) # vælg én
math.sqrt(16) # 4.0
math.floor(3.7) # 3
datetime.now() # aktuel tid
print(x)skriv til konsollen
len(liste)antal elementer
range(n)tal 0..n-1
enumerate(liste)indeks + værdi
sorted(liste)ny sorteret liste
list(dict)liste af nøgler
", ".join(liste)saml strenge
isinstance(x, int)er x et heltal?
open(fil, "r"/"w")læs/skriv fil
IndentationError. Python kræver præcis samme indrykning i en blok.input() giver altid en streng – brug int() ved tal.liste[10] på en liste med 3 elementer → IndexError. Tjek len() først.dict["mangler"] → KeyError. Brug dict.get("mangler") i stedet.= er tildeling, == er sammenligning. if x = 5: er en fejl.encoding="utf-8" i open().