Regningsarterne fungerer ved at anvende tegnene: + , - , * og / . Se herunder:
>>> 6+3
9
>>> 6-3
3
>>> 6*3
18
>>> 6/3
2.0
Læg mærke til at der bliver anvendt int i alle eksemplerne, og at resultatet bliver leveret på samme måde ved +, - og *. Men ved division bliver resulatet ændret til float. Se nedestående eksempel
>>> 2/3
0.6666666666666666
Python anvender korrekte regningsregler, hvilket vil sige at + og - adskiller ledene, og at de skal sættes paranteser for at omgå dette. Se eksemplerne herunder:
>>> 3+2*6
15
>>> (3+2)*6
30
>>> 3+6/2
6.0
>>> (3+6)/2
4.5
I de nedestående opgaver skal du lave regnestykker ved hjælp af tallene, regningsarterne +, -, * og / og paranteser:
Tal | Resultater |
---|---|
6, 3, 4 | -6, 6, 12, 18, 36 |
4, 4, 8 | -16, -7, 0, 1, 2, 6, 28 |
For at finde potens tal og rødder anvendes funktionen pow(a,b)
, hvor a er grundtallet og b er potensen. Se nedestående eksempler:
Matematisk udtryk | Python funktion | Alternativ |
---|---|---|
\( a^b \) | pow(a,b) |
a**b |
\( \sqrt[b]{a} \) | pow(a,1/b) |
a**(1/b) |
Det anbefales at man anvender funktionen pow()
fremfor **
. Det gør koden mere læselig.
Eksempler med 24 og kvadratroden af 4:
>>> pow(2,4)
16
>>> pow(4,1/2)
2.0
Man kan have funktioner inde i funktioner, f.eks:
>>> pow( pow(7,2) , 1/5 )
2.17790642448278
Beregn følgende tal:
For at anvende logaritmer skal pakken math
importeres
Matematisk udtryk | Funktion | Inverse funktion | Beskrivelse |
---|---|---|---|
\( y^x \) | pow(y,x) | math.log(x,y) | Logaritmen (grundtal y) |
\( 10^x=y \) | pow(10,x) | math.log10(x) | Logaritmen (grundtal 10) |
\( e^x = y \) | math.exp(x) | math.log(y) | Den naturlige logaritmen (grundtal e) |
>>> import math
>>> math.log10(100)
2.0
>>> math.log10(pow(10,2))
2.0
>>> math.log(pow(math.e,2))
2.0
I matematik er der konstanter som man ikke kommer uden om herunder konstanten π og e
Konstant | Funktion | Værdi |
---|---|---|
\( \pi \) | math.pi | 3.141592... |
\( e \) | math.e | 2.718281... |
De kan kaldes ved at importere dem fra pakken math
>>> import math
>>> math.pi
3.141592653589793
>>> math.e
2.718281828459045
To funktioner som ikke giver mening normalt i matematik er modulus og "floor division".
Funktion | Tegn | Beskrivelse | Eksempel |
---|---|---|---|
modulus | % |
Returnere resten efter division | 9%5 = 4 |
floor division | // |
Returnerer heltallet efter division | 9//5 = 1 |
>>> 9%5
4
>>> 9//5
1
Man kan ved hjælp af modulus og floor division omskrive en uægte brøk til en blandet brøk efter følgende model:
modulus og floor division virker i første omgang lidt underlige, men har en masse praktiske anvendelser. F.eks:
x%3 = 0
*antal flasker* // 30
Hvis man vil arbejde med absolutte tal anvender man funktionen abs()
. Det gør at resultatet bliver repræsenteret med sin positive værdi. Se eksemplerne:
>>> abs(-2)
2
I Python anvendes grundlæggende 3 taltyper
Betegnelse | Talmængde | Beskrivelse | Eksempel | Læg mærke til |
---|---|---|---|---|
int | \( \mathbb{Z} \) | Heltal (kaldes integer på engelsk) | 1 ; 17 ; 2499 | |
float | \( \mathbb{R} \) | Decimaltal | 0.5 ; 3,141592 ; 0.6666 | ... at der anvendes punktum og ikke komma |
Fraction | \( \mathbb{Q} \) | Brøker | 1/2 ; 22/7 ; 2/3 | Resultatet kommer ud i formen: Fraction(tæller,nævner) |
int er heltal og anvendes ofte i programmering til at tælle og holde styr på antallet af gange noget skal ske. Det er samtidig den taltype der fylder mindst i hukommelsen og computeren kan beregne hurtigt.
float er simple decimaltal og kan anvendes til langt de fleste beregninger. Men taller er ikke præcist se nedestående eksempel:
>>> 3*0.1-0.3
5.551115123125783e-17
Resultatet burde give 0 men giver en rest. Det er ikke fordi computeren ikke kan regne, men skyldes at float er binært defineret, hvilket giver disse afvigelser - i dette tilfælde efter den 17 decimal. Men anvender man få decimaler er float rigeligt.
For at arbejde med brøker skal funktionen kaldes og brøker skrives ved at anvende formen: Fraction(a,b)
hvor a er tælleren og b er nævneren. Herunder vises udregningen bag Piet Heins digt både som Fraction og som float.
En halv er
tænk nu hvor aparte
to trediedele
af trekvarte
\( \frac{1}{2} = \frac{2}{3} \cdot \frac{3}{4} \)
Først skal fractionimporteres:
>>> from fractions import Fraction
>>> brøk1 = Fraction(2,3)
>>> brøk2 = Fraction(3,4)
>>> brøk1*brøk2
Fraction(1, 2)
>>> float1=float(2/3)
>>> float2=float(3/4)
>>> float1*float2
0.5
Hvis man vil undersøge hvilken taltype en variabel er anvender man funktionen type()
. Lad os prøve det ved at anvende variablerne fra eksemplet ovenfor:
>>> a=7
>>> b=3/4
>>> c=3.14
>>> type(a)
<class 'int'>
>>> type(b)
<class 'float'>
>>> type(c)
<class 'float'>
Herunder angiver vi variablen d, som er det samme som c - blot i taltypen fraction. Vi lægger også mærke til at variablen d nu er funktionsværdien af Fraction(2,3)
>>> d=Fraction(2,3)
>>> type(d)
<class 'fractions.Fraction'>
>>> d
Fraction(2, 3)
Python er designet til hele tiden at vælge den bedst mulige taltype, hvilket betyder at tal der fremkommer ved hjælp af division automatisk bliver konverteret til float. Det vi skal kigge på her er hvordan vi konverterer mellem taltyper og finder ud af hvilken taltype det er.
For at omskrive et tall fra en type eller en tekststreng til et tal anvendes funktionerne: int()
, float()
ogFraction()
.
int()
- omskrivning til heltalfloat()
- omskrivning til floatFraction()
- omskrivning til brøkMan skal være opmærksom på at man ved en omskrivning kan miste decimaler. Hvis man omskriver en brøk eller et decimaltal til en int, så mister man alle decimalerne. Se eksemplerne herunder:
>>> a=3.14
>>> b=9/10
>>> c=11/10
>>> int(a)
3
>>> int(b)
0
>>> int(c)
1
Når der omskrives til float sættes der minimum en decimal på.
>>> a=1
>>> b=3.14
>>> c=2/3
>>> float(a)
1.0
>>> float(b)
3.14
>>> float(c)
0.6666666666666666
For at arbejde med Fraction skal funktionen først importeres:
>>> from fractions import Fraction
>>> a=1
>>> b=3.14
>>> c=2/3
>>> Fraction(a)
Fraction(1, 1)
>>> Fraction(b)
Fraction(7070651414971679, 2251799813685248)
>>> Fraction(c)
Fraction(6004799503160661, 9007199254740992)
Læg mærke til at omskrivningen fra 2/3 bliver til 6004799503160661/9007199254740992. Det skyldes at variablen c ikke bliver gemt som en brøk (Fraction), men som et float. Derved kommer der en unøjagtighed ind i decimalerne som bliver nedarvet.
Det man kan lære af det er, at man skal arbejde med de rigtige taltyper hele tiden, da man ellers risikerer unøjagtige resultater.
Beregn ved hjælp af python hvad forskellen er mellem c og Fraction(c)
fra eksemplet ovenfor.