Variabler, datatyper och I/O

Förstå grundläggande datatyper och hur data tas emot och skrivs ut i Python.

Ca 45 min · del av Programmering i Python

Begrepp i lektionen

  • variabel
  • int
  • float
  • str
  • bool
  • print()
  • input()

Efter denna lektion kommer du att förstå hur Python hanterar data i minnet med variabler, behärska de fyra grundläggande datatyperna samt kunna ta emot inmatning och skriva ut resultat.

Variabler och namngivning i Python

En variabel kan ses som en namngiven behållare eller etikett som pekar på ett värde i datorns minne. När du skapar en variabel i Python tilldelar du den ett värde med hjälp av likhetstecknet (`=`), som kallas tilldelningsoperatorn.

python

x = 10

namn = "Alice"

I exemplet ovan skapas variabeln `x` som pekar på heltalet `10`, och `namn` som pekar på textsträngen `"Alice"`.

Regler och konventioner för variabelnamn

1. Tillåtna tecken: Bokstäver (a-z, A-Z), siffror (0-9) och understreck (`_`).

2. Starttecken: Ett variabelnamn får inte börja med en siffra. Det kan börja med en bokstav eller ett understreck.

3. Shift-känslighet: Python skiljer på stora och små bokstäver. `Alder`, `alder` och `ALDER` är tre helt olika variabler.

4. Reserverade ord: Du får inte använda Pythons egna nyckelord som variabelnamn (t.ex. `if`, `for`, `class`, `def`).

5. Stilkonvention (PEP 8): I Python används så kallad snake_case för variabelnamn, där ord separeras med understreck och skrivs med små bokstäver (t.ex. `student_alder`, `total_summa`).

Python använder dynamisk typning. Det innebär att du inte behöver deklarera vilken typ av data en variabel ska innehålla innan du använder den – Python räknar ut det automatiskt vid körning.

De fyra grundläggande datatyperna

Varje värde i Python tillhör en specifik datatype. Datatypen avgör vilka operationer som kan utföras på värdet. Python har fyra primära inbyggda datatyper för enkla värden:

1. `int` (Heltal): Representerar hela tal utan decimaler, både positiva och negativa (t.ex. `-5`, `0`, `42`). Python kan hantera godtyckligt stora heltal utan att förlora precision.

2. `float` (Decimaltal / Flyttal): Representerar tal med decimaltecken. Observera att Python använder punkt (`.`) som decimalavskiljare (t.ex. `3.14`, `-0.001`, `2.0`).

3. `str` (Textsträng): Representerar sekvenser av tecken och används för text. Strängar omges av antingen enkla (`'...'`) eller dubbla (`"..."`) citationstecken.

4. `bool` (Boolskt värde): Representerar ett logiskt sanningsvärde. Kan endast ha ett av två värden: `True` (sant) eller `False` (falskt). Observera stor begynnelsebokstav.

Du kan kontrollera vilken datatype en variabel har med den inbyggda funktionen `type()`:

python

alder = 20

pi = 3.14159

namn = "Karin"

is_student = True

print(type(alder)) # Skriver ut: <class 'int'>

print(type(pi)) # Skriver ut: <class 'float'>

print(type(namn)) # Skriver ut: <class 'str'>

print(type(is_student)) # Skriver ut: <class 'bool'>

Utskrift och strängformatering med print()

Funktionen `print()` används för att skriva ut information till konsolen. Du kan skicka in ett eller flera argument separerade med kommatecken:

python

amne = "Python"

poang = 95

print("Kurs:", amne, "Poäng:", poang)

Skriver ut: Kurs: Python Poäng: 95

F-strängar (Formatted String Literals)

Det mest moderna och läsbara sättet att kombinera text och variabler i Python är f-strängar. Du skapar en f-sträng genom att sätta bokstaven `f` direkt framför citationstecknet. Inuti strängen kan du placera variabler eller uttryck inom krullparenteser `{}`.

python

namn = "Elsa"

alder = 22

print(f"Hej, jag heter {namn} och är {alder} år gammal.")

Skriver ut: Hej, jag heter Elsa och är 22 år gammal.

Inuti krullparenteserna kan du även göra beräkningar eller avrundningar. Exempelvis kan du avrunda decimaltal med syntaxen `{variabel:.2f}` för två decimaler:

python

pris = 19.99 * 1.25

print(f"Totalt pris inklusive moms: {pris:.2f} kr")

Skriver ut: Totalt pris inklusive moms: 24.99 kr

Inläsning med input() och typkonvertering

För att göra ett program interaktivt använder vi funktionen `input()`. Den pausar programmet och väntar på att användaren ska skriva in något och trycka på Enter.

python

namn = input("Vad heter du? ")

print(f"Välkommen, {namn}!")

Viktig fallgrop: input() returnerar ALLTID en sträng!

Oavsett om användaren skriver ett tal (t.ex. `25`), kommer `input()` att returnera textsträngen `"25"`. Om du försöker utföra matematiska beräkningar direkt på resultatet uppstår ett fel eller oväntat beteende:

python

alder = input("Skriv din ålder: ") # Om användaren skriver 20, blir alder = "20"

nasta_ar = alder + 1 # TypeError: kan inte addera sträng och heltal!

Typkonvertering (Type Casting)

För att utföra beräkningar måste vi konvertera strängen till ett tal med `int()` eller `float()`:

python

alder_str = input("Skriv din ålder: ")

alder = int(alder_str) # Konverterar strängen "20" till heltalet 20

nasta_ar = alder + 1 # Nu fungerar beräkningen! (21)

Vi kan även konvertera åt andra hållet med `str()` eller göra konverteringen direkt vid inläsningen:

python

hojd = float(input("Ange din längd i meter: ")) # Läser in och gör om till float

Hela kursen