Skip to content

Introduktion till villkor

Vi har nu bra koll på variabler och datatyper i python. Vi känner till stränger, heltal, flyttal och boolska värden (sant eller falskt). Vi ska i denna övning titta på hur data flödar igenom våra program. Vi kommer titta på villkors-satsen if

Vi rekommenderar att du kodar med i denna övning så du själv får känna på hur det är att skriva Python-kod.

Ordlista

Villkor

Ofta vill vi ta reda på om våra variabler uppfyller vissa krav. Det kan vara om en heltalsvariabel är större än 10 eller om en strängvariabel är lika med en annan sträng. För att undersöka om våra variabler uppfyller dessa krav kan vi använda oss av en if-sats. Låt oss titta på hur en if-sats ser ut i Python.

number_of_apples = 13
if number_of_apples > 10:
print("Du har mer än 10 äpplen")
# skriver ut: Du har mer än 10 äpplen

I kodexemplet ovan definierar vi först en variabel number_of_apples och sätter den lika med heltalet 13. Vi gör sedan en jämförelse mellan vår variabel number_of_apples och heltalet 10. Om vi läser ut raden, där vi gör jämförelsen, blir det ungefär “om antalet äpplen är större än 10 skriver vi ut ‘Du har mer än 10 äpplen’”.

Som vi ser ovan är raden som skriver ut ‘Du har mer än 10 äpplen’ inflyttat ett snäpp. Detta kallas för indentering. I Python används indentering som ett sätt att avgränsa det som hör till if-satsen. I exemplet nedan ser vi hur vi kan ‘avsluta’ if-satsen genom att flytta ut koden längst till vänster.

number_of_apples = 13
if number_of_apples > 10:
print("Du har mer än 10 äpplen")
print("Nu är vi klara med if-satsen")
# skriver ut:
# Du har mer än 10 äpplen
# Nu är vi klara med if-satsen

If-else

I kodexemplet ovan skrivs det inte ut nått från if-satsen om vi har 10 eller färre äpplen, men det vore ju trevligt om vårt program även skrev ut ett meddelande till de med få äpplen. Så låt oss äta 4 äpplen och titta på nedanstående exempel.

number_of_apples = 9
if number_of_apples > 10:
print("Du har mer än 10 äpplen")
else:
print("Du har nog varit hungrig och ätit upp dina äpplen")
print("Nu är vi klara med if-satsen")
# skriver ut:
# Du har nog varit hungrig och ätit upp dina äpplen
# Nu är vi klara med if-satsen

elif

Om vi läser upp ovanstående exempel blir det ungefär: “om antalet äpplen är större än 10 skriver vi ut “Du har mer än 10 äpplen”, annars skriver vi ut ‘Du har nog varit hungrig och ätit upp dina äpplen’”. Om vi istället vill kolla att antalet äpplen ligger inom ett intervall kan vi använda ytterligare ett villkor i vår if-sats. Detta gör vi genom att använda konstruktionen elif.

number_of_apples = 9
if number_of_apples > 10:
print("Du har mer än 10 äpplen")
elif 5 < number_of_apples <= 10:
print("Du blev snabbt mätt och åt bara upp några av dina äpplen")
else:
print("Du har nog varit hungrig och ätit upp dina äpplen")
print("Nu är vi klara med if-satsen")
# skriver ut:
# Du blev snabbt mätt och åt bara upp några av dina äpplen
# Nu är vi klara med if-satsen

Notera 5 < number_of_apples <= 10, i många andra programmeringsspråk funkar inte det. Då behöver man istället använda and, number_of_apples > 5 and number_of_apples <= 10

Nästlade if-satser

Vi har även möjligheten att kombinera villkor för att få ett mer avancerat flöde i våra program. Om vi nu också vill kolla vilken sorts frukt vi har kan det se ut på följande sätt.

type_of_fruit = "päron"
number_of_fruits = 13
if number_of_fruits > 10:
if type_of_fruit == "äpple":
print("Du har mer än 10 äpplen")
else:
print("Du har mer än 10 frukter")
print("Nu är vi klara med den inre if-satsen")
print("Nu är vi klara med den yttre if-satsen")
# skriver ut:
# Du har mer än 10 frukter
# Nu är vi klara med den inre if-satsen
# Nu är vi klara med den yttre if-satsen

Visualisera flödet

Vi har nu tittat på hur en if-sats kan se ut i python och hur det kan styra flödet av data i våra program. Ett sätt att få en överblick över flödet är att rita så kallade flödesdiagram (flow charts). Det enklaste sättet är att rita på ett blankt papper och det ger en bra möjlighet för att tänka över det problem, som vi löser med Python-kod. Ett exempel på flödesdiagram för ett kodexempel syns nedan.

number_of_apples = 9
if number_of_apples > 10:
print("Du har mer än 10 äpplen")
else:
print("Du har nog varit hungrig och ätit upp dina äpplen")
print("Nu är vi klara med if-satsen")
# skriver ut:
# Du har nog varit hungrig och ätit upp dina äpplen
# Nu är vi klara med if-satsen
Image description
Bild: Flödesdiagram för en if-sats.

[FIGURE src=image/python/flow-if.png caption=“Flödesdiagram för en if-sats.”]

Ytterligare ett bra sätt att förstå hur en if-sats exekveras är att använda vi rekommenderade i kmom01. Nedan finns exemplet i visualiseringsverktyget.

Exemplet i fullskärm.

Play

Avslutningsvis

Vi har i denna övning tittat på konstruktioner i python som låter oss styra flödet av data i våra program. Vi använder if för att jämföra värden och beroende på utfallet av jämförelsen körs olika delar av programmet. Konstruktionen if finns i de flesta programmeringsspråk och fungerar på liknande sätt.

Alla kodexempel från denna övningen finns på GitHub.