Python – cheat sheet

Værdier, funktioner, lister, ordbøger, filer og fejlhåndtering

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.

1. Start: hvordan koden køres

# 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.

2. Variable og datatyper

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
Hovedregel: ingen const/let – bare tildel. Brug f"..."-strenge til at sætte værdier ind i tekst; de er moderne og letteste at læse.

3. Operatorer og sammenligning

# 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).

4. Betingelser og løkker

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.

5. Funktioner

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.

6. Lister (arrays)

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.

7. Ordbøger (dictionaries)

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.

8. Strenge og tal

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"

9. Fejl og sikker adgang

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.

10. JSON og filer

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.

11. Input fra brugeren

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!")

12. Nyttige moduler

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

13. Hurtig oversigt

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

14. Typiske faldgruber