Definiera variabler
Variabler definieras med likamedstecknet: =.
my_string = 'Hello World' # Sträng / str
my_int = 42 # Heltal / int
my_float = 3.14 # Decimaltal / float
Variabler används för att lagra enskilda värden. Variabler kan vara av olika datatyper beroende på vilken typ av data som lagras.
| Datatyp | Exempel | Förklaring |
|---|---|---|
| int (heltal) | x = 5 |
Heltal, utan decimaler. Kan vara positiva eller negativa. |
| float (flyttal) | y = 3.14 |
Tal med decimaler. |
| bool (boolean) | is_happy = True |
Kan bara vara True eller False. |
| str (string / text) | name = "Elmo" |
Textsträngar, skrivs inom " " eller ' '. |
Variabler definieras med likamedstecknet: =.
my_string = 'Hello World' # Sträng / str
my_int = 42 # Heltal / int
my_float = 3.14 # Decimaltal / float
Man kan omvandla värden/variabler mellan olika datatyper. (Eng: type conversion)
my_string = str(42) # Gör om ett värde till en textsträng
my_int = int(13.3) # Gör om ett värde till ett heltal
my_float = float('3.14') # Gör om ett värde till ett decimaltal
Man kan använda variabler i beräkningar.
x = 100
my_sum = 100 + x
| Förklaring | |
|---|---|
+ |
Addition |
- |
Subtraktion |
* |
Multiplikation |
/ |
Division |
// |
Division med avrundning nedåt |
** |
Upphöjt |
% |
Modulo / rest från division |
+= |
Addera till |
-= |
Subtrahera från |
x = 1
y = 100
# Addera 1 till x
x += 1
# Subtrahera 3 från y
y -= 3
print('Hello World!')
OBS! Alla värden måste då vara textsträngar.
name = 'Markus'
print('Hello ' + name + '!')
Om man skriver ut flera värden med kommatecknet kan man blanda datatyper. Man får ett automatiskt mellanslag mellan värdena.
name = 'Markus'
score = 100
print('Hello', name, 'Your score:', score)
# → 'Hello Markus Your score: 100'
Strängar kan på många sätt hanteras som listor. Man kan till exempel nå delar av en sträng med hakklammer:
name = 'Markus'
first_three_letters = name[0:2]
# → 'Mar'
name = 'Markus'
big_name = name.upper() # → 'MARKUS'
small_name = name.lower() # → 'markus'
name = 'Markus'
new_name = name.replace('rk', 'gn')
# → 'Magnus'
name = ' Markus '
new_name = name.strip()
# → 'Markus'
Funktionen input() pausar programmet och väntar på text-input från användaren. Den input-data man får från användaren lagrar man ofta i en variabel. Input-datan är alltid en textsträng/str.
name = input('Vad heter du?')
Om man vill göra beräkningar eller numeriska jämförelser med datan kan man konvertera den direkt till en annan datatyp.
age = int(input('Hur gammal är du?'))
Listor används för att lagra flera värden som hör samman med varandra. En lista skapar man som en variabel med värden separerade med kommatecken. Listans värden ramas in i klammerparenteser [].
my_list = ['value1', 'value2', 'value3']
För att nå ett värde i listan använder man ett positionsnummer. Den första positionen har numret 0. Positionsnummer kallas även index.
first_value = my_list[0]
Med negativa positionsnummer räknar man bakifrån från sista positionen.
last_value = my_list[-1]
Med kolon : kan man ange ett intervall av positioner.
first_three_values = my_list[0:2]
my_list[0] = 'new value'
my_list.append('new value')
my_list = ['value1', 'value2', 'value3']
list_size = len(my_list)
name = 'Markus'
string_size = len(name)
menu = ['pizza', 'kebab', 'sushi']
for food in menu:
print(food)
menu = ['B', 'D', 'C', 'A']
menu.sort()
# → ['A', 'B', 'C', 'D']
food_string = 'kebab, pizza, sushi, meatballs'
food_list = food_string.split(',')
# → ['kebab', ' pizza', ' sushi', ' meatballs']
food_list = ['kebab', ' pizza', ' sushi', ' meatballs']
food_string = ','.join(food_list)
# → 'kebab, pizza, sushi, meatballs'
If-satser används för att programmet ska utföra viss kod endast då ett visst villkor är uppfyllt. Det kodblock som ska utföras har 4 mellanslags indrag. (Indentering)
else används för att ange vad som ska göras ifall villkoret inte uppfylls.
| Förklaring | |
|---|---|
== |
Lika med |
!= |
Inte lika med |
< |
Mindre än |
> |
Större än |
>= |
Lika eller större än |
<= |
Lika eller mindre än |
and |
Och |
or |
Eller |
name = 'Markus'
if name == 'Markus':
print('Welcome!')
else:
print('Go away!')
age = 25
if age > 20:
print('Hello!')
else:
print('Goodbye')
andMed and kan man ange flera villkor som alla måste vara sanna.
username = 'marpet'
password = 'secret'
if username == 'marpet' and password == 'secret':
print('Welcome!')
else:
print('Access denied!')
orMed or kan man ange flera villkor. Det räcker med att ett av villkoren är sant.
if username == 'marpet' or username == 'marpet2':
print('Welcome!')
else:
print('Access denied!')
if role == 'admin':
print('Welcome admin!')
elif role == 'user':
print('Welcome user!')
else:
print('Access denied!')
Med en if-sats kan man kontrollera ifall ett värde finns i en lista.
menu = ['kebab', 'pizza', 'meatballs']
if 'pizza' in menu:
print('Yes! Pizza!')
else:
print('Nooooo..... I want pizza!')
Med en if-sats kan man kontrollera ifall en textsträng innehåller en viss annan sträng.
text = 'Python is easy!'
if 'easy' in text:
print('Correct!')
else:
print('You are wrong! Practice more!')
Funktioner som returnerar True eller False (booleska värden) kan användas direkt som villkor i if-satser.
if is_logged_in():
print('Welcome!')
else:
print('Access denied!')
Loopar används när man vill utföra samma kod flera gånger. Den kod som ska utföras i loopen indenteras med 4 mellanslag.
För att ange hur många gånger en for-loop ska köras används funktionen range() som skapar en talserie mellan två heltal.
for i in range(0, 10):
print('I can count to:', i)
For-loopar används även för att gå igenom (iterera) listor och strängar.
menu = ['pizza', 'kebab', 'sushi']
for food in menu:
print(food)
name = 'Markus'
for letter in name:
print(letter)
En while-loop körs så länge ett villkor är uppfyllt.
i = 0
while i < 10:
print('I can count to:', i)
i += 1
while-loopOm man anger ett villkor som alltid är sant, skapas en evig loop.
while True:
input('Are we there yet?')
breakMan kan använda break för att avbryta en loop.
while True:
answer = input('Are we there yet?')
if answer == 'yes':
print('Finally!')
break
Funktionen range kan även användas för att skapa en lista av talserier. Funktionen tar även ett tredje argument som anger avståndet mellan talen i talserien.
my_list = list(range(0, 50, 10))
print(my_list)
# → [0, 10, 20, 30, 40]
En funktion är namngiven kod som man kan anropa från sitt program. Med funktioner slipper man upprepa sig när man vill göra samma sak flera gånger i ett program. Funktioner är också ett sätt att dela upp ett större program i mindre, mer lätthanterliga delar.
def hello():
print('Hello!')
print('Have a nice day!')
hello()
def hello(name):
print('Hello', name)
hello('Markus')
def triangle_area(base, height):
area = base * height / 2
return area
my_area = triangle_area(5, 7)
print(my_area)
Datatypen dictionary (dict) är en samling precis som listor. Istället för att de olika elementen representeras av ett positionsnummer (0, 1, 2 etc.) används egna namn. Namnen som identifierar positionerna kallas för keys (sv. nycklar).
car = {'brand': 'Volvo', 'color': 'black', 'max_speed': 280}
print(car['max_speed'])
car = {
'brand': 'Volvo',
'color': 'black',
'max_speed': 280,
'price': 200000,
'model_year': 2018,
}
products = [
{
"name": "Ahlgens bilar",
"price": 17.5,
"quantity": 2,
},
{
"name": "Gott och blandat",
"price": 18.5,
"quantity": 3,
},
]
car = {
'brand': 'Volvo',
'color': 'black',
'max_speed': 280,
'price': 200000,
'model_year': 2018,
}
for key, value in car.items():
print(key, ':', value)
Tuplar och set är samlingar (collections) och alternativ till listor.
De viktigaste skillnaderna mot vanliga listor:
my_tuple = ('kebab', 'pizza', 'meatballs')
my_set = {'kebab', 'pizza', 'meatballs'}
| Egenskap | List (list) |
Tuple (tuple) |
Set (set) |
|---|---|---|---|
| Ordning | Bevaras | Bevaras | Ingen garanterad ordning |
| Dubbletter | Tillåts | Tillåts | Ej tillåtna (unika element) |
| Ändringsbar | Ja | Nej (immutable) | Ja (men endast unika element) |
| Sökning (x in ...) | Långsammare | Långsammare | Mycket snabb |
| Använd som dict-nyckel | Nej | Ja | Nej |
| Vanliga användningsområden | Listor av data som kan ändras, ordning viktig | Koordinater, fasta värden, säkra datastrukturer | Unika värden, mängdoperationer (union, snitt, skillnad) |
| Prestanda | Flexibel men lite långsammare | Snabbare än listor | Snabb för medlemskap och mängdlogik |
Modulen random används för att hantera slumptal.
Kodmoduler som random behöver importeras innan de används. Import av moduler görs högst upp i ens kod.
import random
r1 = random.random()
r2 = random.randrange(10, 20)
menu = ["pizza", "kebab", "pasta"]
food = random.choice(menu)
Modulen datetime används för att hantera tid och datum.
today = datetime.date.today()
christmas = datetime.date(2025, 12, 24)
christmas = date.fromisoformat("2025-12-24")
Metoden weekday() ger veckodagens nummer. Måndag \= 0, tisdag \= 1 etc.
christmas = datetime.date(2025, 12, 24)
print(christmas.weekday())
# → 2
import datetime
christmas = datetime.date(2025, 12, 24)
today = datetime.date.today()
time_to_christmas = christmas - today
print(time_to_christmas)
import datetime
today = datetime.date.today()
ten_days = datetime.timedelta(days = 10)
in_ten_days = today + ten_days
print(in_ten_days)
now = datetime.datetime.now()
print(now)
# → 2025-09-16 10:05:21.723942
print(now.time())
# → 10:05:21.723942
print(now.date())
# → 2025-09-16
| Klass | Egenskaper (attribut) | Vanliga metoder |
|---|---|---|
date |
year, month, day |
today(), fromisoformat(), weekday(), isoweekday(), isoformat(), replace() |
datetime |
year, month, day, hour, minute, second, microsecond |
now(), today(), utcnow(), fromtimestamp(), strftime(), strptime(), date(), time(), replace() |
time |
hour, minute, second, microsecond |
isoformat(), replace() |
timedelta |
days, seconds, microseconds |
total_seconds() + stöder aritmetik med datum/tid (+, -) |
with open('names.txt') as file:
content = file.read()
print(content)
Genom att använda metoden strip() tar vi bort tecknet för "ny rad" i slutet på varje textrad.
with open('names.txt') as file:
for line in file:
print(line.strip())
with open('names.txt') as name_file:
names = name_file.readlines()
Detta tar bort eventuellt tidigare innehåll
with open('textfile.txt', 'w') as textfile:
textfile.write('Hello world!')
with open('textfile.txt', 'a') as textfile:
textfile.write('Hello world!')
\nOm man vill lägga till en radbrytning i texten som man skriver kan man använda teckenkombinationen: \n
with open('textfile.txt', 'a') as textfile:
textfile.write('Hello world!\n')
textfile.write('Hello again!')
| Lägeskod | Betydelse | Exempel | Kommentar |
|---|---|---|---|
"r" |
Läsning (read) | open("fil.txt", "r") |
Filen måste redan finnas |
"w" |
Skrivning (write) | open("fil.txt", "w") |
Skriver över hela filen |
"a" |
Append (lägg till) | open("fil.txt", "a") |
Skriver i slutet av filen |
"b" |
Binärt läge | open("bild.png", "rb") |
För filer som inte är text |
"x" |
Skapa ny fil | open("nyfil.txt", "x") |
Fel om filen redan finns |