Python

Fortbildning för lärare

Inledande övningar

Kör övningarna på repl.it.

Som en miniräknare

Det svarta fönstret till höger är det så kallade Python shell.

De aritmetiska operatorerna i Python är:

Övning 1

Använd Python shell. Beräkna

a) \( \dfrac{4.2}{7.3+0.26} \)

b) \( 2^6 \)

c) \( \sqrt{200} \)

d) \( \sqrt[7]{200^5} \)

e) Hur många timmar och minuter det går på 1100 minuter.

Övning 2

Utför operationen 2*3**2. Vilken av operatorerna ** och * har högst prioritet?

Variabler, datatyper och tilldelningar

Övning 3

Testa att skriva in

a = 1
b = 0.4 
c = 2+4j
d = "Hello World!"
e = 'Hej'

Testa sedan commandot type(a) på de fem variablerna.

För komplexa tal kan man även använda c.real och c.imag.

Gör ännu en komplex variabel. Testa att addera, multiplicera och divividera de komplexa variablerna.

Textsträngar

Textsträngar består av tecken inneslutna av antingen citationstecken (") eller apostrof ('). Vill du att en textsträng skall innehålla en apostrof kan du välja citationstecken som avdelare, och vice versa.

Övning 4

Testa koden

print('"Eureka" he shouted.')
print("Archimedes discovered what is now known as Archimedes' principle.")

Flyttal

Övning 5

Beräkna

0.1+0.2
0.25+0.125

På vilket sätt skiljer sig resultaten åt? Förklara skillnaden! (Ma1c)

In- och utdata

Kör flera kommandon i det vita fönstret till vänster. Om du vill kunna spara dina sessioner måste du logga in.

Övning 6

Testa koden

# Addera två tal. 
a = int(input("a=")) 
b = int(input("b=")) 
sum = a+b 
print("a+b=",sum)

Den översta raden exekveras inte utan är en så kallad kommentar.

Funktionen input låter användaren mata in text som sparas som en textsträng.

Funktionen int konverterar från textsträng till heltal.

Ändra i koden så att instruktionen till användaren blir tydligare, så att det framgår att det är heltal som ska matas in.

Övning 7

Gör ett program som tar emot en temperatur i grader Celsius som indata och sedan visar temperaturen i Fahrenheit. Formeln för konvertering är

\[ F = \frac{9}{5}C+32 \]

Om du vill tillåta flyttal kan du konvertera med hjälp av funktionen float.

Övning 8

Gör ett program som tar emot ett antal minuter som indata och sedan visas hur många timmar och minuter denna tid motsvarar.

Jämförelser

Python använder följande operatorer för jämförelser.

operator förklaring matematisk motsvarighet
< mindre än <
> större än >
<= mindre än eller lika med
>= större än eller lika med
== lika med =
!= skilt från

Lägg märke till att dubbelt likhetstecken betyder lika med. Ett enkelt likhetstecken används till tilldelningar.

Övning 9

Testa koden

print(7>5)
print(7<5)
print(15==3*5)

Operanderna är tal och resultatet är en så kallad boolesk datatyp.

Logiska operatorer

Logiska operatorer verkar på booleska datatyper och resultatet är en boolesk datatyp.

operator förklaring matematisk motsvarighet
and och
or eller
not inte ¬

Övning 10

Testa koden

print(5>3 or 5<3)
print(5>3 and 5<3)
print(5>3 or 5<3 or not 5<3)

Villkorssatser

En enkel villkorssats ( eller if-sats) i Python skrivs på följande sätt

if villkor:
    <block med kod som utförs om det logiska uttrycket "villkor" är sant>

där villkor är ett booleskt uttryck. Lägg märke till att det ska vara ett kolon i slutet på den första raden.

Till skillnad från många andra programmeringsspråk, används inte någon sorts parenteser för att avskilja ett block med kod, istället används indentering. All kod som är indenterad efter if-raden exekveras om villkor är sant.

Ofta vill man utföra olika sorters kod beroende på om ett villkor är sant eller falskt. Då använder man strukturen nedan, en if-else-sats.

if villkor:
    <block med kod som utförs om villkor är sant>
else:
    <block med kod som utförs om villkor är falskt>

Övning 11

Skriv ett program som låter användaren mata in två tal och sedan visar kvoten då det ena talet divideras med det andra. Om det andra talet är noll, ska någon sorts felmeddelande visas.

Övning 12

Skriv ett program som låter användaren mata in ett heltal och sedan visar huruvida talet var udda eller jämnt.

Villkorssatser med förgreningar

Man kan hantera flera förgreningar med hjälp av ordet elif vilket är en förkortning av orden else if. En if-sats kan innehålla godtyckligt många elif men endast ett else.

if villkor1:
    <block som utförs om villkor1 är sant>
elif villkor2:
    <block som utförs om villkor1 är falskt och villkor2 är sant>
elif villkor3:
    <block som utförs om villkor1 och villkor2 är falska och villkor3 är sant>
else:
    <block som utförs om villkor1, villkor2, och villkor3 är falska>

Matematiska funktioner

De vanligaste matematiska funktionerna är definierade i en Python-modul som heter math. Vill du använda en sådan funktion måste du först importera modulen math, därefter kan du använda dig av punktnotation med ordet math som prefix.

import math
print(math.sqrt(16))
print(math.pi)
print(math.sin(math.pi))

Det går också att hitta på ett kortare namn för att förenkla användning av prefix.

import math as m
print(m.sqrt(9))

Du kan också ange vilka funktioner du vill importera från math och på så vis helt undvika punktnotation.

from math import sqrt, pi, sin
print(sqrt(16))
print(pi)
print(sin(pi))

Vill du importera alla funktioner från math skriver du

from math import *

Det som händer när du använder import på en modul, är att namnen i modulen görs tillgängliga. För att namnen i en modul inte ska krocka med namn du själv definierat, bör du använda import * med viss försiktighet.

För att se vilka funktioner modulen math innehåller kan du använda funktionen help. Skriv help() i Python shell. Skriv sedan math för att se vad modulen innehåller. Skriv quit för att avsluta hjälpen.

Övning 13

Använd sqrt som ligger i biblioteket math.

En andragradsekvation på formen

\[x^2+px+q=0 \]

kan lösas av den så kallade pq-formeln

\[ x = -\frac{p}{2}\pm \sqrt{\left(\frac{p}{2} \right)^2-q} \]

Skriv ett program som löser andragradsekvationen med hjälp av sqrt. Du kan anta att ekvationen har två reella rötter. Båda rötterna ska visas som utdata. Testa programmet med p = 10 och q = 5.

Övning 14

Ändra i koden som löser andragradsekvationen så att modulen cmath används istället för modulen math. Nu ska koden även kunna hantera komplexa tal. Testa att köra den med p=1 och q=5.

Övning 15

Om man bara betraktar reella lösningar till en andragradsekvation, kan man få noll, en, eller två lösningar. Antalet lösningar beror på den så kallade diskriminanten. Diskriminanten är det uttryck som finns inuti lösningsformelns rotuttryck.

Modifiera koden som löser en andragradsfunktion. Inför en variabel som representerar diskriminanten. Lägg till en if-sats med förgreningar så att progammet ger tre olika sorters utskrift beroende på antalet lösningar.