Python som miniräknare
Du skall nu får lära dig mer om Python Console (REPL) genom att använda det som en miniräknare.
Starta Spyder
Starta Spyder om du inte redan gjort det.
Python Console och prompten
Nere till höger i Spyder hittar du Python Console vilket är ett Python REPL.
Förenklad prompt
I alla kommande exempel kommer den förenklade prompten >>>
användas och
resultatprefixet kommer utelämnas. Följande exempel i Python Console:
In [1]: 1+1
Out[1]: 2
In [2]:
, kommer i alla kommande exempel att se ut så här:
>>> 1+1
2
>>>
Den första raden:
>>> 1+1
, betyder inte att du skall skriva skriva in >>> 1+1
i Python Console. Det
betyder att du skall skriva in 1+1
efter prompten i Python Console.
En rad med endast >>>
:
>>>
, betyder att en ny prompt kommer visas här i Python Console.
Addition
Skriv in 1+1
efter prompten och tryck enter.
>>> 1 + 1
Svaret på denna beräknings skriv nu ut på en egen rad följt av en ny prompt.
>>> 1 + 1
2
>>>
Notera att du kan använda godtyckligt många mellanslag runt plustecknet. Alla dessa varianter är likvärdiga.
1+1
1 +1
1+ 1
1 +1
1+ 1
1 + 1
Men, du kan inte börja med ett eller flera mellanslag.
>>> 1 + 1
File "<stdin>", line 1
1+1
IndentationError: unexpected indent
>>>
Om du böjar med ett eller flera mellanslag klagar Python och ger felmeddelandet IndentationError: unexpected indent
.
Testa fler räknesätt
Nedan ser du exempel på addition, multiplikation och division.
>>> 1 + 3
4
>>> 3*7
21
>>> 1 / 3
0.3333333333333333
>>> 1 + 2*1/3
1.6666666666666665
>>>
Parenteser kan användas för att gruppera.
>>> 10 - 5 / 2
7.5
>>> (10 - 5) / 2
2.5
>>>
Operatorprioritet
Operatorprioritet eller prioriteringsregler för operatorer
är ett begrepp inom bland annat matematik och programmering. Operatorprioriteten används för att
avgöra i vilken ordning operationer (räknesätt) utförs. Behovet kommer från att
vissa uttryck, exempelvis 1 + 2 * 3
har olika värden beroende på om man först
adderar 1 + 2
(då uttrycket har värdet 9
) eller först multiplicerar 2 * 3
(då
uttrycket har värdet 7
).
De prioriteringsregler som används i matematik kan sammanfattas med följande:
- Först beräknas parenteser.
- Sedan potenser.
- Därefter utförs multiplikation och division i valfri ordning.
- Sist utförs addition och subtraktion i valfri ordning.
Reglerna ovan kan leda till tvetydighet. Därför är ordningen för addition och subtraktion liksom för multiplikation och division att operationerna i allmänhet utförs från vänster till höger.
Hur beräknas 5 - 2 + 3
? Reglerna innebär att subtraktionen 5 - 2
skall utföras först.
5 - 2 + 3 = (5 - 2) + 3 = 3 + 3 = 6
Enligt reglerna är det fel att beräkna additionen 2 + 3
först.
5 - 2 + 3 = 5 - (2 + 3) = 5 - 5 = 0
Vi testar och ser hur Python beräknar 5 - 2 + 3
.
>>> 5-2+3
6
Python följer reglerna och utför subraktionen 5 - 2
först.
Hur beräknas 3 + 2 * 6
? Enligt reglerna gäller att multiplikationen 2 * 6
skall
utföras först.
3 + 2 * 6 = 3 + (2 * 6) = 3 + 12 = 15
Enligt reglerna är det fel att beräkna additionen 3 + 2
först.
3 + 2 * 6 = (3 + 2) * 6 = 5 * 6 = 30
Vi testar och ser hur Python beräknar 3 + 2 * 6
.
>>> 3+2*6
15
Python följer reglerna och multiplikationen 2 * 6
utförs först.
Python följer de vanliga reglerna för operatorprioritet från matematiken. Är du osäker på hur något kommer beräknas kan du alltid lägga till parenteser för att göra det tydligare.
>>> 3+(2*6)
15
Variabler
Värdet av en beräkning kan lagras i en variabel. I exemplet nedan lagras värdet
5
i variabeln a
och värdet 2
i variabeln b
. Variablerna a
och b
kan
sedan användas i nya beräkningar.
>>> a = 5
>>> b = 2
>>> (a + b) / 2
3.5
>>>
Testa på egen hand
Testa att utföra olika beräkningar med hjälp av +
, -
, *
och /
på egen
hand. Testa även att använda dig av parenteser (
och )
för att gruppera.
Klurighet
I Python är symbolerna +
, -
, *
och /
exempel på binära aritmetiska
operatorer. Kan du lista ut vad den binära aritmetiska operatorn %
beräknar
för något?
Låt oss testa några exempel.
>>> 1 % 3
1
>>> 2 % 3
2
>>> 3 % 3
0
>>> 4 % 3
1
>>> 5 % 3
2
>>> 6 % 3
0
>>> 7 % 3
1
>>>
Några exempel till.
>>> 1 % 2
1
>>> 2 % 2
0
>>> 3 % 2
1
>>> 4 % 2
0
>>>
Kan du klura ut vad som beräknas med hjälp av operatorn %
?
Mer matematik
För att få tillgång till mer avancerade matematiska funktioner behöver du importera
biblioteket math
.
>>> import math
Talet π
Efter import av biblioteket math
finns talet π
nu tillgängligt som math.pi
.
>>> math.pi
3.141592653589793
Datorer kan inte representera decimaltal med oändligt många decimaler. I detta
fall får vi nöja oss med att π
approximeras till 3.141592653589793
.
Sinus
I intervallet 0
till 2π
ser sinusfunktionen ut så här.
Efter import av biblioteket math
finns funktionen sinus tillgänglig som
math.sin
. Testa att beräkna sin(0)
.
>>> math.sin(0)
0.0
Testa att beräkna sin(π/4)
.
>>> math.sin(math.pi/4)
0.7071067811865475
Testa att beräkna sin(π/2)
.
>>> math.sin(math.pi/2)
1.0
Testa att beräkna sin(3π/4)
.
>>> math.sin(3*math.pi/4)
0.7071067811865476
Testa att beräkna sin(π)
.
>>> math.sin(math.pi)
1.2246467991473532e-16
Notera att sin(π)
inte blir exakt 0
utan att det
beräknas till 1.2246467991473532e-16
vilket är mycket, mycket nära 0
. Detta
beror på att datorer inte kan representera decimaltal, till exempel π
, med oändligt många
decimaler.
Cosinus
I intervallet 0
till 2π
ser cosinusfunktionen ut så här.
Efter import av biblioteket math
finns funktionen sinus tillgänglig som
math.cos
. Testa att beräkna cos(0)
.
>>> math.cos(0)
1.0
Pröva att på egen hand beräkna cosinus för π/4
, π/2
, 3π/4
och π
.
Den naturliga logaritmen
Talet e
utgör basen för den naturliga logaritmen. Efter import att biblioteket
math
finns talet e
tillgängligt som math.e
.
>>> math.e
2.718281828459045
Funktionen för det naturliga logaritmen ln
finns tillgänglig som math.log
.
Vi beräknar ln(7)
.
>>> math.log(7)
1.9459101490553132
För att beräkna ex används math.exp(x)
. Vi prövar att beräkna e2.
>>> math.exp(2)
7.38905609893065
Per definition skall eln(x) = x. Vi testar om det stämmer.
>>> math.exp(math.log(7))
6.999999999999999
I detta fall blir resultat inte exakt 7
utan
6.999999999999999
. Detta beror återigen på att datorer inte kan representera
decimaltal, till exempel talet e
, med oändligt många decimaler.
Lär dig mer
Om du vill kan lära dig med om vilka konstanter och funktioner som finns
tillgängliga i biblioteket math
här.