Kapitel 4
Operatorer och beräkningar
Räkna, jämför och kombinera villkor i Python.
Mål
Efter kapitlet ska du kunna...
- använda aritmetiska operatorer
- jämföra värden och tolka
True/False - kombinera villkor med
and,orochnot - förstå prioriteringsregler och parenteser
- bygga enkla beräkningsprogram
Kärnidé
En operator utför en operation
Operatorer kan räkna, jämföra eller kombinera villkor.
4.1
Aritmetiska operatorer
| Operator | Operation | Exempel |
|---|---|---|
+ | addition | 5 + 3 |
- | subtraktion | 10 - 4 |
* | multiplikation | 6 * 7 |
/ | division | 10 / 2 |
// | heltalsdivision | 10 // 3 |
% | modulus (rest) | 10 % 3 |
Addition och subtraktion
Lägg till eller dra ifrån
a = 5
b = 3
result = a + b
print(result)Utskrift: 8
a = 10
b = 4
result = a - b
print(result)Utskrift: 6
Multiplikation
Python använder *
a = 6
b = 7
result = a * b
print(result)
Utskrift: 42
Tecknet x är inte en multiplikationsoperator i Python.
Division
/ ger vanlig division
a = 10
b = 2
result = a / b
print(result)
Utskrift: 5.0
Resultatet blir ett decimaltal även när divisionen går jämnt ut.
Heltalsdivision
// tar heltalsdelen
a = 10
b = 3
result = a // b
print(result)
Utskrift: 3
Decimaldelen i 3.333... tas bort.
Modulus
% ger resten
a = 10
b = 3
rest = a % b
print(rest)
10 innehåller tre hela grupper med 3: 3 + 3 + 3.
Då återstår 1, så 10 % 3 blir 1.
Modulus används exempelvis för att kontrollera om ett tal är jämnt: tal % 2 == 0.
Kontrollfråga
/, // eller %?
print(17 / 5)
print(17 // 5)
print(17 % 5)
Tänk ut de tre resultaten.
3.4
3
2
Python använder punkt i decimaltal, alltså 3.4 och inte 3,4.
Operatorer och variabler
Beräkna ett totalpris
price = 50
amount = 3
total = price * amount
print(f"Totalt pris är {total}")
f före citattecknet skapar en f-sträng. Värdet i {total} placeras i texten.
Utskrift: Totalt pris är 150
4.2
Jämförelser ger booleska värden
Python jämför två värden.
Resultatet blir alltid True eller False.
print(5 == 5) # True
print(5 != 5) # False
Jämförelseoperatorer
Sex vanliga jämförelser
| Operator | Betydelse |
|---|---|
== | lika med |
!= | inte lika med |
< | mindre än |
<= | mindre än eller lika med |
> | större än |
>= | större än eller lika med |
< eller > ska stå först: skriv <= och >=.
Skriv inte =< eller => – de operatorerna finns inte i Python.
Viktig skillnad
= är inte ==
a = 5= tilldelar värdet 5 till variabeln a.
a == 5== frågar om a har värdet 5.
Jämförelser · exempel
Förutsäg resultatet
print(4 < 10)
print(10 <= 10)
print(12 > 7)
print(9 >= 10)
Svar: True, True, True, False.
Spara resultatet
En jämförelse kan bli en variabel
age = 18
adult = age >= 18
print(adult)
adult får värdet True.
4.3
Logiska operatorer kombinerar villkor
| Operator | Blir sann när... |
|---|---|
and | båda villkoren är sanna |
or | minst ett villkor är sant |
not | det ursprungliga värdet är falskt |
Operatorn and
Båda måste vara sanna
age = 20
print(age > 18 and age < 30)
20 > 18 är True.
20 < 30 är True.
True and True blir True.
Operatorn or
Minst ett måste vara sant
age = 15
print(age < 18 or age > 65)
Det första villkoret är sant och det andra är falskt.
True or False blir True.
Operatorn not
Vänd värdet
is_student = True
print(not is_student)
not True blir False.
not False blir True.
Flera villkor
Myndig och har biljett
age = 22
has_ticket = True
allowed = age >= 18 and has_ticket
print(allowed)
Båda villkoren är sanna, så resultatet blir True.
Kontrollfråga
Vad blir resultatet?
age = 40
print(age < 18 or age > 65)
Båda jämförelserna är falska.
Svar: False.
4.4
Python följer prioriteringsregler
result = 5 + 3 * 2
print(result)
Multiplikationen räknas först: 3 * 2 = 6.
Sedan additionen: 5 + 6 = 11.
Parenteser
Bestäm vad som räknas först
result = (5 + 3) * 2
print(result)
Parentesen räknas först: 5 + 3 = 8.
Sedan multiplikationen: 8 * 2 = 16.
Jämför
Samma tal – olika resultat
10 + 4 * 3Resultat: 22
(10 + 4) * 3Resultat: 42
Använd parenteser när de gör din avsikt tydligare.
4.5 · Hela programmet
Enkel miniräknare
number1 = float(input("Skriv första talet: "))
number2 = float(input("Skriv andra talet: "))
summa = number1 + number2
print(f"Summan är {summa}")
Beräkningsprogram
Fyra tydliga steg
- Läs in värden.
- Omvandla och spara värdena.
- Gör beräkningen.
- Skriv ut resultatet.
Strukturen är samma oavsett vilken beräkning programmet gör.
Hela programmet
Beräkna ett pris
price = float(input("Pris per vara: "))
amount = int(input("Antal varor: "))
total = price * amount
print(f"Totalt pris är {total}")
price kan ha decimaler, men amount är ett heltal.
Hela programmet
Celsius till Fahrenheit
celsius = float(input("Temperatur i Celsius: "))
fahrenheit = celsius * 9 / 5 + 32
print(f"Temperaturen i Fahrenheit är {fahrenheit}")
Formeln följer Pythons vanliga prioriteringsregler.
4.6 · Vanliga fel
Operatorer och syntax
| Fel | Rätt |
|---|---|
print 5 + 3 | print(5 + 3) |
5 x 3 | 5 * 3 |
a = 5 som jämförelse | a == 5 |
Vanligt fel
input() ger text
Fel kod
age = input("Ålder: ")
print(age + 5)Terminalen
Ålder: 17
TypeError: can only concatenate
str (not "int") to strage = int(input("Ålder: "))
print(age + 5)Rätt kod: int() omvandlar texten till ett heltal. Terminalen skriver då 22.
4.7 · Övning
Tre beräkningar
- Läs in två tal.
- Beräkna summan.
- Beräkna skillnaden.
- Beräkna produkten.
- Skriv ut alla tre resultaten tydligt.
Övning
Medelvärdet av tre tal
Läs in tre tal från användaren.
average = (number1 + number2 + number3) / 3
Parentesen säkerställer att summan beräknas före divisionen.
Testa med 10, 20 och 30. Förväntat svar är 20.0.
Sammanfattning
Kom ihåg
+,-,*,/,//och%gör beräkningar.- Jämförelser ger
TrueellerFalse. =tilldelar, medan==jämför.and,orochnotkombinerar eller vänder villkor.- Multiplikation och division räknas före addition och subtraktion.
- Parenteser styr och förtydligar beräkningsordningen.