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😃