Matematik med Python

Dette afsnit vil give dig en kort introduktion til at bruge Python til matematik.

Jeg tager udgangspunkt i programmet Thonny til at lave Pythonprogrammer. Har du det ikke installeret så følg vejledningen i nedestående link.

Installer Thonny

I dette materiale vil vi bruge både kode- og Shell-vinduet:

Eksemplerne i teksten

Grundbegreber

Der er 3 grundbegreber, som du skal have styr på for at anvende Python:

Værdier
Tal som bruges til at lave beregninger med
Tekstrenge
Tegn der vises på skærmen, men som ikke kan regnes med. Det kan være både bogstaver og tal
Variabler
En tekststreng der fungerer som en holder for en værdi eller tekststreng

Værdier (tal)

Python arbejder grundlæggende med 3 taltyper: int, float og Fraction

int (heltal)
int er alle hele tal.

F.eks: -34, -2, 7, 87 (talmængden ℤ)
float (decimaltal)
float er alle decimaltal

F.eks: -17.6, 0.666, 3.14 (talmængden ℝ)

Læg mærke til at man bruger . (punktum) til at adskille heltals- og decimaldelen af tallet
Fraction (brøker)
Fraction er værdier som angives som brøker

F.eks: \( - \frac {2}{5}, \frac {1} {3} og \frac {3}{4}\) (talmængden ℚ)

Vær opmærksom på

  • Hvis man laver en division af to heltal, så vil Python automatisk lave resultatet til float (decimaltal).
  • Man skal anvende . (punktum), som seperator mellem hel- og decimaltallet

Tekststrenge

I tekststrenge vil alt blive tolket som tegn. Det betyder f.eks. at hvis man skriver: "Jeg er født i 1970", så bliver 1970 tolket som tegn, og ikke en værdi man kan bruge til beregninger.

Det er noget man skal være opmærksom på især når man får sit program til at spørge om noget. Som udgangspunkt vil Python behandle alle inputs som tekststrenge.

Spørger man f.eks: "Hvornår er du født: " og brugeren svarer 2006, så vil svaret blive tolket som en tekststreng. Du vil senere lære hvordan du konverterer (ændrer) tekstrenge der indeholder tal til at blive værdier, altså en int, float eller Fraction.

Input af tekstrenge og værdier

Python kan kende forskel på værdier og tekstrenge ved hjælp af den måde du taster dem ind.

Værdier indtastes direkte f.eks:

>>> 4
4
>>> 37
37

Tekststrenge indtastes med enten anførselstegn (") eller apostrof (') omkring sig. f.eks:

>>> "abc"
'abc'
>>> 'def'
'def'

Det er frit hvilken af de to du anvender. Fordelen ved at have to forskellige er, at vi kan bruge den anden, hvis selve tekstrengen indeholder " eller ' f.eks:

>>> 'Det er en "fantastisk" nyhed'
'Det er en "fantastisk" nyhed'
>>> "Isn't she lovely"
"Isn't she lovely"

Variabler

En variable er en betegnelse man sætter lig med en værdi eller en tekststreng. I eksemplet herunder sætter jeg a=4. Når jeg herefter indtaster a vil Python svare med 4

>>> a=4
>>> a
4

Hvis jeg vil ændre variablen gør jeg på det samme måde. Her ændrer jeg a til tekststrengen "Python er let at lære"

>>> a="Python er let at lære"
>>> a
"Python er let at lære"

Der gælder nogle regler for variabler:

  • Variabler skal starte enten med et bogstav eller _ (underscore)
  • Variabler må ikke starte med et tal eller tegn
  • Variabler er case-sensitive, hvilket f.eks. betyder at variablen a ikke er den samme som A

Et godt råd er at give dine variabler læsbare og forståelige navne. Skal du f.eks. lave en variabel til et fornavn kan det være:

  • fnavn (læsbar forkortelse)
  • for_navn (snake case - underscore til at adskille ord)
  • forNavn (camel casing - Stort bogstab til at adskille ord)

Du skal navngive på den måde det giver bedst læsbarhed for dig og dem der skal læse din kode.

Jeg bruger snake case, fordi jeg selv synes det er nemmest at læse.

Et eksempel kan f.eks. være at vi skal beregne arealet af en rektangel med højden 3 og længden 4. Formlen for rektanglets areal er \( A_{firkant}=højde \cdot længde \). I Python indtaster vi først højde og længe som variabler:

>>> højde=3
>>> længde=4

Nu kan vi beregne arealet ved at gange de to variabler sammen. Vi bruger tegnet * (stjerne) til at gange med

>>> højde*længde
12

Hvis vi ændrer længden til 7 kan vi se det nye areal:

>>> længde=7
>>> højde+længde
21

Brug forrige resultat

Vi kan bruge forrige resultat ved at skrive _ (underscore).

Her vil vi beregne arealet af en trekant, som har samme sidelænger som rektanglen ovenfor. Vi ved at trekantens areal er: \( A_{trekant} = \frac {1}{2} \cdot højde \cdot længde \). Altså nøjagtig halvdelen af forrige resultat. Så vi skriver:

>>> _*0.5
10.5

Arealet er altså 10,5.

print()

Når vi bruger Shell i Thonny, så kan vi hele tiden se output fra det vi er igang med at kode. Det er fordi Shell automatisk udskriver resultatet.

Når vi senere skal til at lave længere kode, skal vi sørge for at printe output. Det gør vi med funktionen print(), hvor man indsætter det som skal skrives ud i parantesen. I eksemplet herunder laver jeg variablen x som har værdien 10, og udskriver den med print().

>>> x=10
>>> print(x)
10

Læg mærke til at output nu er placeret anderledes. Det er den måde som Shell tolker en print-sætning.

Indtaster vi nu en tekststreng f.eks: "Hej med dig", så får vi følgende resultat:

>>> print("Hej med dig")
Hej med dig

Her er apostrofferne fjernet ... fordi det er print-funktionens output vi ser.

Variabler i output

Man kan indsætte variabler i en tekststreng ved hjælp af pladsholdere. Se eksemplet herunder hvor vi laver en variabel for navn og by og indsætter de to variabler i tekststrengen:

>>> navn="Thomas"
>>> by="Haderslev"
>>> print(f"Hej. Mit navn er {navn}. Jeg kommer fra {by}")
Hej. Mit navn er Thomas. Jeg kommer fra Haderslev

Lad os kigge på det der sker inde i print():

print(f"Hej. Mit navn er {navn}. Jeg kommer fra {by}")

Det lille f  laver et fancy output. Når vi skriver det, så får vi adgang til nogle funktioner inden i tekststrengen vi skal printe ud. Bl.a. kan vi udskrive variabler, men også lave linieskift og indrykninger (se nedenfor).

Variablerne angives med krøllede paranteser og indsættes der hvor de skal udskrives.

Escaped characters

Escaped characters er tegn, som man sætter en skråstreg foran så Python tolker dem specielt.

Her er de mest anvendte til at formatere teksten

\t
Indsætter en tabulater (rykker 4 tegn) i den tekst man udskriver
\n
Indsætter et linieskifte i teksten

Her er et eksempel hvor vi skriver:

  1. Hejsa
  2. (indsæt 2 linieskift)
  3. Python er let at bruge
  4. indsæt 2 linieskift og indryk med en tab
  5. Hilsen Thomas
>>> print("Hejsa \n\nPython er let at bruge\n\n\tHilsen Thomas ")
Hejsa 

Python er let at bruge

	   Hilsen Thomas 
>>> 
Hvis du skal bruge tegnene \   , "   eller '   i output

Skal man indsætte specialtegn, som normalt bliver brugt som en del af koden, kan man også escape dem:

\\
Indsætter en skråstreg i output
\'
Indsætter et anførselstegn
\"
Indsætter et citationstegn

Her er nogle eksempler.

>>> print("Man kan sagtens sætte \" ind hvis man gør det på den rigtige måde")
Man kan sagtens sætte " ind hvis man gør det på den rigtige måde
>>> print('Man kan sagtens sætte \' ind hvis man gør det på den rigtige måde')
Man kan sagtens sætte ' ind hvis man gør det på den rigtige måde
>>> print("Der skal være \\ foran \", \' eller \\ hvis det skal virke rigtigt")
 Der skal være \ foran ", ' eller \ hvis det skal virke rigtigt