Datatyper

Tidigare har vi skapat variabler för att spara information. 

I det här avsnittet ska vi undersöka vilka olika slags information som en dator kan förstå.

Lika men olika

Såhär kan vi skapa tre olika variabler:

elever_i_klassen = 25
temperatur = 18.5
mitt_namn = "Marcus"

Alla dessa variabler är skapta på samma sätt, och har unika namn, men vi säger att de innehåller olika datatyper

De första två innehåller numeriska data, det vill säga siffror i någon form. Den första är ett heltal för att det inte är några decimaler, men den andra är ett decimaltal. På datorspråk kallas de oftast för int (kort för engelskans ord för heltal, integer) och float (kort för "floating-point number").

Den sista variabeln innehåller bokstäver och utgörs av text. På datorspråk kallas den oftast för en sträng, eller på engelska string. Texten skrivs då mellan antingen ' eller ". Vissa kallar dem för enkelfnuttar och dubbelfnuttar.

En fjärde datatyp vi kommer använda lite senare är "boolean", som likt en strömbrytare bara har två värden, sant eller falskt, eller "True" eller "False".

jag_kan_python = True

Vilken typ är det?

Vi kan ta reda på vilken typ av data som ligger i en variabel med hjälp av type:

Prova att köra!

Men för att programmet ska fungera är det upp till oss som skriver koden att hålla reda på vilken datatyp som finns var. Det är viktigt, för det bestämmer vad vi kan göra.

Till exempel går det att köra följande kod:

# Exempel 1
print(elever_i_klassen + temperatur)
# Exempel 2
print(mitt_namn + temperatur)  # Kraschar!

Eftersom båda variabler i första exemplet är numeriska kan vi plussa ihop dem och se resultatet. Men i det andra exemplet är den ena variabeln en sträng. Hur ska vi kunna plussa ihop "Marcus" med 18.5? Det går inte, och resultatet blir istället att vårt program kraschar. Prova!

Vissa programmeringsspråk, som till exempel Javascript, försöker vara hjälpsamma och omvandla koden till vad den tror vi vill göra. Men inte Python som ger oss ett felmeddelande. Lite senare kommer vi lära oss ta ut information från dessa felmeddelanden men nu nöjer vi oss med att något verkligen blivit fel.

Omvandla mellan typer

De här variablerna ser ut att innehålla samma sak: 

födelseår = 2010
årtal = "2010"

Men det är viktigt att se att de (i datorns värld) är helt olika! Den första variabeln är ett tal (en int) så vi kan till exempel be datorn räkna ut vår ålder:

print(2022 - födelseår)

Men det här skulle inte fungera:

print(2022 - årtal)

Visserligen är det bara siffror i variabeln årtal, men det är en sträng, så från datorns perspektiv är det som vilken text som helst. För att få uträkningen att fungera måste vi omvandla till rätt datatyp, genom att berätta för datorn att vi kan använda innehållet som en int:

print(2022 - int(årtal))

Nu när vi har koll på olika datatyper är vi redo att göra våra program interaktiva, vilket vi ska göra i nästa avsnitt.

Har du en fråga du vill ställa om Datatyper? 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

I den här videon tittar vi på hur olika datatyper kan användas tillsammans, och speciellt när de inte kan det.

  • 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.
  • Heltal: Ett tal utan decimaler, som \(5\) eller \(42\). Förkortas "int".
  • Flyttal: Ett tal med decimaler, som \(3.14\), kallas inom programmering för flyttal. Förkortas "float".
  • Sträng: Text av olika slag kallas inom programmering för strängar. Förkortas "str".
  • Omvandling: Att förändra information från en datatyp till en annan, till exempel från strängen "5" till heltalet \(5\).