Interaktiv

Hittills har våra program varit rätt ensidiga. Vi har skapat variabler, skrivit instruktioner som print, och låtit datorn utföra dessa från start till slut. Våra sköldpaddor har gått precis som vi sagt åt dem.

Men vanligtvis kan program göra olika saker beroende på vad vi säger åt den just då. Det ska vi undersöka nu.

Input

Våra program kan ställa frågor till användaren med hjälp av funktionen input.

Det svar som användaren skriver in kan sparas i en variabel och sedan användas på senare rader i programmet. Döp variabeln till något som reflekterar svaret. Här är ett exempel:

Notera att vi har ett mellanslag efter frågetecknet - det är bara för att ge lite "luft" mellan frågan och det svar som användaren skriver in.

Kom ihåg datatyperna!

Det är klurigt att hålla reda på vilket år man föddes. Vi kan skriva ett program som hjälper till med detta:

ålder = input("Hur gammal är du? ")
nuvarande_år = 2022
födelseår = nuvarande_år - ålder
print(f"Du föddes år {födelseår}")

Vänta nu, såhär kan vi inte göra.

Python vet inte på förhand vad som användaren skriver in, utan tänker att allting är någon form av text, alltså en sträng. Då blir det fel på rad 3 när vi försöker göra en uträkning och blandar datatyper.

Eftersom vi vet att åldern är ett tal, en int, kan vi be Python att omvandla till en int. Lättast är att göra såhär.

ålder = int(input("Hur gammal är du? "))

Vi kan också göra detta på en egen rad

ålder = input("Hur gammal är du? ")
ålder = int(ålder)

Om vi hade glömt omvandla hade vi fått felmeddelande. I nästa avsnitt ska vi bli bättre på att förstå dem.

Variabler kan variera 

Ovanför såg vi nyss den här raden: 

ålder = int(ålder)

Variabeln ålder har ett värde (en sträng), men nu ersätts den med ett nytt värde (ett heltal). En variabel kan alltså byta värde och till och med vilken typ av data den innehåller.  

Här är ett annat exempel: 

tal = 1
print(tal)
tal = tal + 1
print(tal)

Den första print-instruktionen kommer skriva ut en etta. Efteråt ändras värdet på variabeln tal till tal+1, vilket då är 1+1, alltså 2. Den andra print-instruktionen skriver alltså ut en tvåa. 

Har du en fråga du vill ställa om Interaktiv? Ställ den på Pluggakuten.se
Har du hittat ett fel, eller har du kommentarer till materialet på den här sidan? Mejla matteboken@mattecentrum.se
Läs sidan på andra språk

I den här videon använder vi funktionen input och ser hur den kan ersätta tidigare förutbestämda ("hårdkodade") variabler.

  • Interaktiv: Program som ändrar sig efter vad du skriver in eller vilka knappar du klickar på.
  • I/O: Förkortning för input/output. I Python använder vi input och print.
  • Datatyp: Vilken slags data en variabel innehåller. Detta kan till exempel vara ett heltal \((5)\), ett flyttal \((2.3)\), en sträng \((“Marcus”)\) eller något annat.
Svårighetsgrad