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
- Variabler, datatyper och I/O
- Operatorer och logiska uttryck
- Villkorssatser
- Slingor och iteration
- Listor och sekvenser
- Tupler och mängder
- Dictionaries
- Iteration och list comprehension
- Funktionsdefinitioner och parametrar
- Variablers räckvidd (Scope)
- Moduler och Pythons standardbibliotek
- Läsa och skriva filer
- Felhantering och undantag
- Text- och databearbetning