Skip to main content

Grunder

En bra princip i Python är att arbeta i virtuella miljöer. I en virtuell miljö installeras en specifik version av Python och tillhörande paket i en kombination som kan vara unik för just den här miljön.

Aktivera virtuell miljö (Linux) via:

python3 -m venv myenv
source myenv/bin/activate

Nu ska prompten visa (myenv)$.

Paket kan nu installeras i miljön via pip, Pythons pakethanterare. Ex. pip install paketnamn. Vill man alltid ha samma version av ett paketnamn slår man paketnamn==1.1.1, då installeas alltid version 1.1.1. Slår man paketnamn>=1.0 installeras 1.0 eller högre.

Paket kan man söka efter på https://pypi.org/search

För att stänga av miljön slå deactivate.

Bra arbetssätt är att använda en requirements.txt fil. I den filen ska alla paket man önskar använda finnas, ex:

jmespath==1.0.1
jq==1.7.0
jsonpath-ng==1.5.3
lxml==4.9.3
markdown-it-py==3.0.0

Sedan kan man installera alla paket i miljön med pip install -r requirements.txt.

Om man vill spara de paket man för tillfället har installerade i en venv kan man göra det genom pip freeze > requirements.txt.

Datatyper

Ett objekt som är mutable kan förändras och ett objekt som är immutable kan ej förändras. En variabel kan fortfarande förändras genom att tilldela om den, men datatypen kan inte modifieras.

Namn Typ Mutable Beskrivning
Integer int Nej Hela nummer utan decimaler, ex. 6, 600 och 1589
Float

Ej hela nummer, ex. 1337.1337
Boolean bool Nej Ett jämförbart värde, kan bara vara True eller False
String str Nej Sekvens av text avgränsad av citatttecken, såsom "Cisco, "Piper" och "2000"
List list Ja Strukterad sekvens av objekt, ex. [10, "DNA", 19.8]
Tuple tup Nej Strukterad sekvens av immutable objects, ex. (10, "DNS", 19.8)
Dictionary dict Ja Ostrukterad key:value pairs, ex. {"key1":"value1","name":"Pip"[}
Set set Ja Ostrukterad samling av unika object, ex. {"a","b"}

Variabel

En variabel är ett värde i Python som är mappad till ett Pythonobjekt som är sparat i minne. Ex. supervariabel = 1337 är då en variabel där supervariabel matchar Integer 1337.

[jehrlander@bash python]python3
Python 3.12.13 (main, Jul 10 2026, 00:00:00) [GCC 14.3.1 20251022 (Red Hat 14.3.1-4)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> supervariabel = 1337
>>> print(supervariabel)
1337
>>> type(supervariabel)
<class 'int'>

Om man istället använder supervariabel = "1337" så blir det en String och inte en Integer.

>>> supervariabel = "1337"
>>> type(supervariabel)
<class 'str'>

En integer innehåller inte decimale: har den decimaler så blir det en float.

>>> supervariabel = 1337
>>> type(supervariabel)
<class 'int'>

>>> supervariabel = 1337.1337
>>> type(supervariabel)
<class 'float'>

Listor

Python har inte arrays. I Python kan man använda sig av listor. En lista kan innehålla alla typer av dataobjekt, även andra listor.

>>> switchar = ['Sw1', 'Sw2', 'Sw3']
>>> switchar
['Sw1', 'Sw2', 'Sw3']

>>> type(switchar)
<class 'list'>


>>> routrar = ['R1', 'R2']

>>> natvarksprylar = [switchar, routrar]
>>> natvarksprylar
[['Sw1', 'Sw2', 'Sw3'], ['R1', 'R2']]
>>> type(natvarksprylar)
<class 'list'>

Listor är att föredra över tuples när ett värde kan förändras, då listor är mutable.

Tuples

Tuples är lika listor, men de är inte skrivbara (immutable). Råkar man göra såhär så blir det en tuple istället:

>>> natvarksprylar = switchar,routrar 
>>> natvarksprylar (['Sw1', 'Sw2', 'Sw3'], ['R1', 'R2']) 
>>> type(natvarksprylar) <class 'tuple'>

Men regeln är att för att skapa en tuple använder man parantes istället för hakparantes. Så korrekt sätt att gskapa tuple är:

>>> natvarksprylar = (switchar, routrar)
>>> type(natvarksprylar)
<class 'tuple'>

En tuple är bra och effektiv att använda när värdet aldrig förändras, då tuple är immutable.

Dictionary

En dictionary är ett till sätt att skapa en samling av värden. Dictionary används när man behöver data som är ihopkopplat med ett visst värde, key:value.

>>> R1 = { "os":"Cisco IOS-XE", "hardware":"IR1101", "location":"Mordor" }
>>> type(R1)
<class 'dict'>
>>> R1["hardware"]
'IR1101'
>>> R1["location"]
'Mordor'