Programmering nivå 1 med Python

Kapitel 2: Variabler, datatyper och input

Detta kapitel visar hur program lagrar information, hur man tar emot input från användaren och hur man omvandlar datatyper.

Innehållsförteckning

Klicka på ett avsnitt för att hoppa direkt.

2.1 Vad är en variabel

När ett program körs behöver det kunna lagra information. Den informationen sparas i något som kallas variabler.

En variabel är en plats i datorns minne där ett värde lagras. Variabeln har ett namn så att programmet kan använda värdet senare.

Man kan tänka på en variabel som en låda med en etikett. Etiketten är variabelns namn och i lådan ligger värdet.

name = "Anna"

Här skapas en variabel som heter name. Värdet som lagras i variabeln är texten "Anna".

Programmet kan sedan använda variabeln senare i koden.

Variabler gör det möjligt att

  • lagra information
  • ändra värden
  • använda värden flera gånger i ett program

2.2 Tilldela värden

När man ger en variabel ett värde kallas det att tilldela ett värde.

Det görs med likhetstecknet =.

name = "Anna"
age = 17

Här skapas två variabler.

Variabel Värde
name Anna
age 17

Programmet kan nu använda dessa värden i senare instruktioner.

Det är viktigt att komma ihåg att = i programmering betyder tilldela ett värde, inte matematiskt lika med.

Testa nu att skriva in dessa koder i IDLE eller VS Code. I fortsättningen kommer jag skriva din kodeditor, editor eller IDE.

Skapa en ny mapp som heter kap 2 och i den skapa en fil du kallar namn.py

En ny mapp gör du genom att två-fingerklicka på macplattan eller högerklicka på datormusen. På svenska heter det sekundärklick. På engelska context click.

Skapa en ny mapp i Finder på macOS
Skapa en ny projektmapp för kapitel 2.

I den skriver du till exempel

name = "Pelle"
age = 18
print(name)
print(age)

Och kör programmet.

För att rensa i Terminalen skriv clear och klicka på Enter.

Terminal med kommandot clear
Kommandot clear rensar terminalfönstret.

2.3 Datatyper

Information som lagras i variabler kan ha olika datatyper. Datatypen beskriver vilken typ av värde som lagras.

De vanligaste datatyperna i Python är:

  • int - heltal
  • float - decimaltal
  • str - text
  • bool - sant eller falskt

Exempel:

age = 17
temperature = 21.5
name = "Anna"
student = True

Datatyper är viktiga eftersom Python behöver veta hur värden ska behandlas.

Övning 1

Skapa en ny fil i din projektmapp. Filen ska heta datatyper.py.

Skriv följande kod i filen.

age = 17
temperature = 21.5
name = "Anna"
student = True

print(type(age))
print(type(temperature))
print(type(name))
print(type(student))

Kör programmet. Du kommer att se vilken datatyp varje variabel har.

<class 'int'>
<class 'float'>
<class 'str'>
<class 'bool'>

Övning 2

Skapa fyra nya variabler i din fil.

En variabel för ditt namn, din ålder, din längd och om du är student (True eller False).

Skriv sedan ut datatyperna med type().

Fler exempel med type()

Testa att skriva följande kod.

print(type(10))
print(type(3.14))
print(type("Hej"))
print(type(True))

Som du har sett kan man i Python kontrollera vilken datatyp ett värde har med funktionen type().

age = 17
print(type(age))

Det betyder att variabeln innehåller ett heltal.

Att använda type() är mycket användbart när man lär sig programmering. Det hjälper dig att förstå vilken datatyp ett värde har, kontrollera att ett program fungerar som du tänkt och hitta fel i din kod.

2.4 Skriva ut variabler

När man programmerar behöver man ofta visa information på skärmen. I Python görs detta med funktionen print().

Funktionen print() används för att skriva ut text eller värden i terminalen.

Exempel:

name = "Anna"
print(name)

Programmet skriver då ut:

Anna

Här händer två saker:

  1. Variabeln name skapas och får värdet "Anna".
  2. Funktionen print() skriver ut värdet som finns i variabeln.

Skriva ut text och variabler tillsammans

Man kan också skriva ut text tillsammans med variabler.

name = "Anna"
print("Hej", name)

Programmet skriver då ut:

Hej Anna

Python sätter automatiskt ett mellanslag mellan värdena som skrivs ut.

Skriva ut flera variabler

Man kan skriva ut flera variabler samtidigt.

name = "Anna"
age = 17
print(name, age)

Resultat:

Anna 17

F-strängar

Ett annat sätt att skriva ut variabler tillsammans med text är att använda f-strängar.

En f-sträng börjar med bokstaven f före citattecknen.

name = "Anna"
print(f"Hej {name}")

Programmet skriver ut:

Hej Anna

Variabeln placeras mellan { } i texten.

Man kan också använda flera variabler.

name = "Anna"
age = 17
print(f"{name} är {age} år gammal")

Resultat:

Anna är 17 år gammal

F-strängar gör ofta koden tydligare och lättare att läsa, därför används de ofta i Python.

Övning 1 - F-strängar

Skapa en ny Pythonfil i din mapp. Filen kan till exempel heta fstring.py.

Skriv följande kod.

name = "Alex"
age = 16
print(f"Hej {name}")
print(f"{name} är {age} år gammal")

Kör programmet.

Övning 2 - F-strängar

Ändra programmet så att det använder dina egna uppgifter.

Programmet ska skriva ut något i stil med:

Hej Maria
Maria är 17 år gammal

Extra uppgift

Lägg till en ny variabel som innehåller namnet på din favoritmat.

food = "pizza"
print(f"Min favoritmat är {food}")

2.5 Input från användaren

Hittills har våra program bara skrivit ut information. Men program kan också ta emot information från användaren. Detta gör program mer interaktiva.

I Python används funktionen input() för att läsa in text från användaren.

name = input("Vad heter du? ")

När programmet körs visas frågan:

Vad heter du?

Programmet väntar då på att användaren ska skriva något och trycka på Enter.

Om användaren skriver Erik sparas texten i variabeln name.

Använda input tillsammans med print

När informationen har sparats i en variabel kan den användas senare i programmet.

name = input("Vad heter du? ")
print(f"Hej {name}")

Om användaren skriver Anna skriver programmet ut:

Hej Anna

Flera frågor

Ett program kan också ställa flera frågor.

name = input("Vad heter du? ")
city = input("Vilken stad bor du i? ")
print(f"Hej {name}")
print(f"Du bor i {city}")

Programmet läser först in namnet och sedan staden.

Viktigt att veta

Information som kommer från input() är alltid text. Det betyder att värdet sparas som datatypen str.

Senare i kapitlet kommer vi att se hur man kan omvandla text till tal.

Testa själv

Skapa en ny fil i din projektmapp som heter input_test.py.

Skriv följande kod.

name = input("Vad heter du? ")
age = input("Hur gammal är du? ")
print(f"Hej {name}")
print(f"Du är {age} år gammal")

Kör programmet och svara på frågorna.

Övning

Skriv ett program som frågar användaren efter namn och favoritfärg.

Programmet ska sedan skriva ut en mening med hjälp av en f-sträng.

Hej Erik
Din favoritfärg är blå

2.6 Typomvandling

I avsnittet om input() såg vi att program kan ta emot information från användaren. Men det finns en viktig sak att känna till.

All information som kommer från input() sparas som text. Datatypen blir alltså str.

age = input("Hur gammal är du? ")
print(type(age))

Om användaren skriver 17 kommer programmet att visa <class 'str'>. Det betyder att värdet 17 sparas som text, inte som ett tal.

Det kan skapa problem om man vill göra beräkningar.

age = input("Hur gammal är du? ")
print(age + 5)

Detta ger ett TypeError eftersom Python inte kan lägga ihop text och tal.

Omvandla text till tal

För att lösa detta använder man typomvandling. Typomvandling betyder att man ändrar en datatyp till en annan.

De vanligaste funktionerna är:

  • int() - omvandlar till heltal
  • float() - omvandlar till decimaltal
  • str() - omvandlar till text

Exempel med heltal

age = int(input("Hur gammal är du? "))
print(age + 5)

Här händer tre saker:

  1. Programmet läser in text från användaren.
  2. Texten omvandlas till ett heltal med int().
  3. Värdet sparas i variabeln age.

Nu fungerar beräkningen.

Om användaren skriver 17 skriver programmet ut 22.

Exempel med decimaltal

temperature = float(input("Vad är temperaturen? "))
print(temperature + 1)

Här omvandlas texten till ett decimaltal.

Kontrollera datatypen

Man kan använda type() för att kontrollera datatypen.

age = int(input("Hur gammal är du? "))
print(type(age))

Resultatet blir <class 'int'>.

Testa själv

Skapa en ny fil som heter typomvandling.py.

age = int(input("Hur gammal är du? "))
print(f"Om fem år är du {age + 5} år gammal")

Kör programmet och testa olika värden.

Övning

Skriv ett program som frågar användaren efter längd i centimeter.

Programmet ska sedan skriva ut:

Din längd är ___ cm
Om du växer 10 cm blir din längd ___ cm

Tips: använd int() för att omvandla värdet till ett tal.

2.7 Vanliga nybörjarfel

Vi har redan tagit upp delar av detta, men det är så viktigt att vi repeterar lite igen och tar med några nya saker att tänka på.

När man börjar programmera är det vanligt att göra små misstag i koden. Det är helt normalt. Alla programmerare gör fel ibland. Det viktiga är att lära sig hur man hittar och förstår felen.

Glömda citattecken

Text i Python måste stå inom citattecken.

Rätt kod:

print("Hej världen")

Fel kod:

print(Hej världen)

I den felaktiga koden förstår Python inte vad texten betyder eftersom citattecknen saknas.

Felstavade kommandon

Python känner bara igen kommandon som är stavade exakt rätt.

Rätt kod:

print("Hej")

Fel kod:

prin("Hej")

Om ett kommando är felstavat visar Python ett felmeddelande.

Saknade parenteser

Många funktioner i Python använder parenteser.

Rätt kod:

print("Hej")

Fel kod:

print "Hej"

Python kräver parenteser runt det som ska skrivas ut.

Fel datatyp

Ett annat vanligt fel är att försöka använda text som ett tal.

Fel kod:

age = input("Hur gammal är du? ")
print(age + 5)

Här sparas värdet från input() som text. Python kan därför inte lägga till talet 5.

Rätt kod:

age = int(input("Hur gammal är du? "))
print(age + 5)

Här omvandlas texten till ett heltal.

Felmeddelanden

När något är fel i ett program visar Python ett felmeddelande. Felmeddelandet berättar ofta vilken rad felet finns på och vilken typ av fel det är.

Det är därför viktigt att läsa felmeddelandet noggrant.

Sammanfattning

Några vanliga nybörjarfel är glömda citattecken, felstavade kommandon, saknade parenteser och fel datatyp.

Genom att läsa felmeddelanden och kontrollera koden noggrant kan man oftast hitta och rätta felet snabbt.

2.8 Övningar

I dessa övningar ska du använda det du har lärt dig i kapitel 1 och kapitel 2.

Du kommer att öva på print(), variabler, datatyper, type(), input(), typomvandling och f-strängar.

Skriv varje program i en egen .py-fil i din projektmapp.

Övning 1 - Presentera dig

Skriv ett program som skriver ut "Hej jag heter ditt namn". Skapa först en variabel med ditt namn och använd sedan print().

name = "Anna"
print(f"Hej jag heter {name}")

Övning 2 - Datatyper

Skapa fyra variabler: namn, ålder, längd och student (True eller False). Skriv sedan ut datatypen för varje variabel med type().

name = "Anna"
age = 17
height = 170
student = True
print(type(name))
print(type(age))
print(type(height))
print(type(student))

Övning 3 - Fråga efter namn

Skriv ett program som frågar användaren efter sitt namn och skriver ut en hälsning.

Programmet ska skriva ut:

Hej ditt namn

Övning 4 - Ålder

Skriv ett program som frågar användaren efter sin ålder.

Programmet ska skriva ut:

Du är ett antal år gammal
Om fem år är du ett antal år gammal

Tips: använd int().

Övning 5 - Längd

Skriv ett program som frågar användaren efter sin längd i centimeter.

Programmet ska skriva ut:

Din längd är ett antal centimeter
Om du växer tio centimeter blir din längd ett antal centimeter

Övning 6 - Favoritfilm

Skriv ett program som frågar användaren efter namn och favoritfilm.

Programmet ska skriva ut:

Hej ditt namn
Din favoritfilm är filmens namn

Övning 7 - Kontrollera datatyper

Skriv ett program som innehåller följande värden: 10, 3.14, "Hej" och True.

Använd type() för att skriva ut vilken datatyp varje värde har.

Övning 8 - Tre frågor

Skriv ett program som frågar användaren efter namn, stad och favoritmat.

Programmet ska sedan skriva ut en kort presentation.

Hej Erik
Du bor i Malmö
Din favoritmat är pizza

2.9 Reflektionsfrågor

Fundera på frågorna nedan. Du kan diskutera dem med en klasskamrat eller skriva ner dina svar.

  1. Vad är en variabel? Förklara med egna ord.
  2. Varför använder man variabler i program?
  3. Vad är en datatyp?
  4. Ge exempel på fyra vanliga datatyper i Python.
  5. Vad gör funktionen type()?
  6. Vad gör funktionen input()?
  7. Varför behöver man ibland använda int() när man använder input()?
  8. Vad är en f-sträng och varför är den användbar?
  9. Ge ett exempel på ett enkelt program som använder variabler.
  10. Varför är det viktigt att läsa felmeddelanden när ett program inte fungerar?