16
Python elementer
Lerking edited this page 2025-03-20 06:50:18 +01:00

Python elementer

Fundamental viden

En kodeblok, i Python, startes altid med en linie, afsluttet med ":". Den efterfølgende kode, indenteres (enten med tab eller space). Lighedstegnet er lidt specielt, i Python. Hvis det bruges som enkelt tegn =, betyder det at en variabel sættes til en værdi. Hvis du vil teste værdien af en variabel, skal du bruge dobbelt lighed = =. Hvis du vil teste forskellighed, af værdier, skal du bruge ! =.

a = 10
b = 20

if a == b:
    print("a er lig med b"
if a < b:
    print("a er mindre end b")
if a > b:
    print("a er større end b")
if a != b:
    print("a er forskellig fra b")

Navngivning af python elementer

Der er nogle velovervejede "regler", som letter læsning af Python kode. Én af disse ting, er navngivning. Navngivning af variabler, funktioner, klasser mm. bør være letforståelige. Derudover, er der nogle gode retningslinier for navngivning af forskellige elementtyper.

Variabler

Variabler bør altid angives med type.
Variabler, navngives med små bogstaver. Brug helst ikke enkeltbogstav for variabler eller andet.

min_variabel: int = 25 # Dette definerer en variabel ved navn *min_variabel* af typen *int* (heltal), med værdien *25*.
min_decimal: float = 10.5 # Dette er en variabel af typen *float* (decimaltal), med værdien *10.5*.
min_bool: bool = True # Dette er en variabel af typen *bool* (sandhedsværdi - Sand eller Falsk)

print(min_variabel) # Udskriver '25'
print(min_decimal) # Udskriver '10.5'
print(min_bool) # Udskriver 'True'

min_variabel += 10 # Læg 10 til min_variabel

print(min_variabel) # Udskriver '35'

En hurtig test.

> python variabler.py
  25
  10.5
  True
  35
>

Konstanter

En konstant, er en variabel der ikke kan ændres når først den er oprettet. En tekststreng, er en konstant da den har en hvis kompleksitet. Konstanter navngives med STORE bogstaver.

MIN_KONSTANT = "Hej med dig!" # Her er en konstant, som ikke kan ændres medmindre men redefinerer den

print(MIN_KONSTANT) # Udskriver 'Hej med dig!'

MIN_KONSTANT += "Hvad er dit navn?" # Dette vil frembringe en fejl, da man forsøger at ændre en konstant. I stedet skal man redefinere konstanten.

MIN_KONSTANT = MIN_KONSTANT + " Hvad er dit navn?"

print(MIN_KONSTANT) # Udskriver "Hej med dig! Hvad er dit navn?"

Funktioner

Funktioner navgives med små bogstaver. En funktion bør have et navn, som fortæller hvad funktionen gør. Hvis man ikke kan navngive, med et ord, bør man indsætte _ imellem ordene. Samtidig bør man altid tilføje input typer samt retur type. Dette gør dit program meget lættere at læse.

def funktion(a, b): # En helt gyldig definition, men det er svært at se, hvad den gør, hvis man skal bruge den i en anden fil.
    return a + b # Returner a+b - hvilket implecit betyder at 'a' og 'b' må være tal, af én eller anden art???

# I stedet bør man lave sin definition således.
def sum(a: int, b: int) -> int:
    return a + b
# Her har vi defineret et godt navn, som fortæller at funktionen summerer nogle tal.
# Derudover, ved vi hvilke input typer funktionen tager samt hvilken type, der bliver returneret.
# I dette tilfælde er inputværdierne heltal 'a: int, b: int'. Ligeledes kan vi se at returværdien er af typen heltal '-> int'

Klasser

Klasser navngives med STORT forbogstav i hvert ord, som sammensættes til navnet. Dette kaldes for Camelcase. I følgende eksempel, har vi en klasse Bil - Stort forbogstav.

class Bil:
    def __init__(self):
    ...

Hvis vi nu antager at vi skal bruge en klasse, kun for gule biler.

class GulBil:
    def __init__(self):
    ...

I dette tilfælde sammensættes gul og bil til GulBil.

Opsumering

Vi har her lært følgende.
variabler skrives med små bogstaver. Og hvis navnet er sammensat, sættes mellem ordene. - min_variabel
konstanter skrives med STORE bogstaver og
ved sammensatte ord. - MIN_KONSTANT
klasser skives i CamelCase. Stort forbogstav, i nyt ord. - Bil, GulBil

Som vi har set nogle eksempler på, kan vi ved hjælp af disse simple "regler", hurtigt tyde et program. Vi kan hurtigt se forskel på en variabel og en KONSTANT. Vi kan se om noget er en klasse GulBil. Disse hjælperegler er med til at gøre Python meget let at læse. Selv hvis du først kigger på din kode igen om 2 år, kan du hurtigt skabe dig et overblik over, hvad dit program gør, og hvordan.

Variabler og funktioner

Vi vil nu kigge på helt basale elementer.

  • Variabler
  • Funktioner

Eksempel 1

Vi starter med en ny fil.

MIN_VARIABEL = "Hej med dig!"

def udskriv_variabel(var: str) -> None: # Input er af typen 'var: str' (streng). Der returneres ingen værdi '-> None'.
    print(var)

udskriv_variabel(MIN_VARIABEL)

Gem denne fil som main.py
Dernæst åbn en kommandoprompt og kør python skriptet med følgende kommando.
Python skal køres, i samme sti som skriptet der skal køres.

> python main.py
  Hej med dig!
> 

Vi vil så se, at python udskriver værdien af 'MIN_VARIABEL' til kommandoprompten, hvorefter skriptet er afsluttet.

Eksempel 2

Vi vil nu lave en funktion, som kan lægge 2 tal sammen. Derefter udskriver vi resultatet.
Vi opretter en ny fil.

def sum(tal1: int, tal2: int) -> str:
    return str(f"Resultat {tal1} + {tal2}: {tal1 + tal2}")

resultat = sum(5, 3)
print(resultat)

Gem denne fil som sum.py Kør med Python.

> python sum.py
  Resultat 5 + 3: 8
>

Vi får nu udskrevet både tallene der lægges sammen og resutatet.

Eksempel 3

Vi vil nu ændre eksempel 2, til at vi selv indtaster de 2 tal, som skal lægges sammen. Vi laver en ny fil.

def sum(tal1: int, tal2: int) -> str:
    return str(f"Resultat {tal1} + {tal2}: {tal1 + tal2}")

tal1 = input("Indtast tal1:")
tal2 = input("Indtast tal2:")

resultat = sum(tal1, tal2)
print(resultat)

Gem denne fil som sum2.py Se hvad der sker når filen køres.

> python sum2.py
  Indtast tal1:6
  Indtast tal2:7
  Resultat 6 + 7: 67
>

Hov! Hvad skete der? 6+7 er ikke 67! 😕
Jo, Python funktionen input() returnerer en tekststreng. Og når du lægger 2 tekststrenge sammen, får du en ny tekststreng
f.eks. "a" + "b" = "ab", "abe"+"kat" = "abekat" eller som i vores tilfælde "6" + "7" = "67". For at få det resultat, vi forventer, skal vi bruge det der hedder type casting. Vi har allerede gjort det, i

return str(f"Resultat {tal1} + {tal2}: {tal1 + tal2}")

Her fortæller vi python, at retursvaret fra funktionen skal være af typen "tekststreng", ved hjælp af "str("
Hvis vi vil returnere en tekststreng, med en matematisk beregning, skal vi fortælle python, hvordan den skal behandle returdataene.
Vi retter sum2.py således

def sum(tal1: int, tal2: int) -> str:
  # return str(f"Resultat {tal1} + {tal2}: {tal1 + tal2}")
  return str(f"Resultat {tal1} + {tal2}: {int(tal1) + int(tal2)}")

tal1 = input("Indtast tal1:")
tal2 = input("Indtast tal2:")

resultat = sum(tal1, tal2)
print(resultat)

Gem filen igen som sum2.py
Det vi gør nu, er at fortælle python, at de 2 tal der skal lægges sammen, skal behandles som heltal (integer). Dette gøres med funktionen int().

Vi har nu også set, hvordan man laver kommentarer, i python. Man sætter # foran kommentaren.
En kommentar kan enten være en hel linie (linien starter med "#") eller kommentaren afslutter linien. Alt hvad der står efter # er kommentar.
Derfor kan man ikke have en kommentar midt i en linie.

Se hvad der nu sker når filen køres.

> python sum2.py
  Indtast tal1:6
  Indtast tal2:7
  Resultat 6 + 7: 13
>

Nu får vi det forventede resultat😃