Gå till innehållet

Variabler och datatyper (Python)

En variabel är som en liten låda med en etikett på. I lådan kan du lägga ett värde (t.ex. ett tal eller en text) och använda det senare.

Mål för denna sida

  • Förstå vad en variabel är och hur man namnger den
  • Känna till skillnaden mellan text (sträng) och tal (int/float)
  • Kunna läsa in tal och räkna med dem

Variabler i praktiken

Python
1
2
3
4
namn = input("Vad heter du? ")  # här sparar vi text i variabeln namn
ålder_text = input("Hur gammal är du? ")  # fortfarande text
print(f"Hej {namn}!")
print("Din ålder (text) är " + ålder_text)

Strängar och tal

input() ger alltid en sträng (text). Vill du räkna behöver du omvandla med int() (heltal) eller float() (tal med decimaler).

Python
1
2
3
4
år = int(input("Vilket år är det nu? "))
ålder = int(input("Hur gammal är du? "))
år_då_du_blir_20 = år + (20 - ålder)
print(f"Du blir tjugo år {år_då_du_blir_20}")

Tal med decimaler:

Python
höjd = float(input("Hur lång är du i meter? "))
print(f"Du är {höjd} meter lång")

Vanliga Python-datatyper

  • bool: True, False (sant/falskt)
  • int: 1, -7, 2025 (heltal)
  • float: 3.14, -0.5 (decimaltal)
  • str: "Hej" (text)
  • list: [1, 2, 3] (ordnad samling)
  • dict: { "namn": "Anna" } (ordlista: nyckel → värde)

Vanliga misstag

  • Blanda text och tal utan omvandling: "Ålder: " + 12 ger fel. Gör "Ålder: " + str(12) eller använd f-sträng: f"Ålder: {12}".
  • Skrivfel i variabelnamn: aldEr är inte samma som ålder.
  • Kommatecken istället för punkt i float: skriv 1.75 (punkt), inte 1,75.

Prova själv

1) Läs två ord och skriv ut en mening med orden i omvänd ordning.

2) Fråga hur långt Max och Jakob hoppade (meter, float) och skriv hur mycket längre Max hoppade.

3) Be användaren om veckolön (tal) och räkna ut månadslön: veckolön * 4.33. Skriv ut med f-sträng.

4) Fråga efter aktuellt årtal (int) och skriv vilket år det är om 10 år.

5) Fråga hur långt hen kan hoppa i meter (float). Skriv hur mycket längre 8.90 är än värdet.

6) Fråga årtal (int). Skriv hur många år det är kvar till 2100.

7) Läs Celsius (float) och skriv Fahrenheit: F = (9/5)*C + 32.

8) Läs Fahrenheit (float) och skriv Celsius: C = (F - 32)*5/9.

9) Hyrbil: startavgift 500 kr + 5 kr/km + 400 kr per extra dag utöver dag 1. Fråga efter dagar och km, skriv total kostnad.

10) Läs in lönen för 3 anställda och skriv medellönen.


Små steg – från text till tal

1) Läs in ålder som text och skriv ut meningen: "Du skrev: ". 2) Gör om texten till tal med int() och räkna ut året du fyller 20. 3) Byt int till float och testa att läsa längd i meter.

Python
1
2
3
alder_text = input("Hur gammal är du? ")
alder = int(alder_text)  # omvandla
print(f"Du blir 20 år om {20 - alder} år")

Mini-projekt: Enkel prisräknare

Läs in antal (int) och pris per styck (float). Räkna totalen och skriv ut snyggt med f-strängar.

Python
1
2
3
4
antal = int(input("Antal: "))
pris = float(input("Pris per styck: "))
total = antal * pris
print(f"Du ska betala {total:.2f} kr")

Utmaningar: - Lägg till rabatt i procent. - Räkna ut moms och slutsumma.

Felsökning

  • ValueError: du försökte göra int("hej"). Säkerställ att användaren skriver siffror.
  • Blandning av typer: använd str(), int(), eller float() vid behov.

Hitta felen! (5 fel)

Det finns 5 fel i koden som ska läsa två tal och skriva summan.

Python
1
2
3
4
5
tal1 = input("Första talet: ")
tal2 = input('Andra talet: ')
summa = tal1 + tal2
print("Summan är " + summa)
print(f"Medelvärde: {summa/2}")

Facit

Python
# Fix 1–2: input() ger sträng → gör int() på båda
tal1 = int(input("Första talet: "))
tal2 = int(input("Andra talet: "))

# Fix 3: nu blir det riktig addition (int + int)
summa = tal1 + tal2

# Fix 4: blanda inte text och tal utan konvertering; använd f-sträng
print(f"Summan är {summa}")

# Fix 5: nu är summa ett tal → division fungerar
print(f"Medelvärde: {summa/2}")