Kommentarer i Python

Innan vi talar om variabler i Python så måste ett par ord sägas om varför och hur man kommenterar kod i Python. Kommentarer används fortlöpande för att beskriva koden. Det är viktigt att vara frikostig med kommentarer. En kommentar kan skrivas på en eller flera rader. Om endast en rad behövs så föredras # för att skriva en kommentar. Detta tecknet ses i nästan alla nedanstående kodexempel.

# Detta är en kommentar i Python

Om man skall skriva en kommentar som är flera rader lång så används istället ''' i början och slutet av kommentaren.

'''Det här är en kommentar
som är flera rader lång.
Men det är fortfarande en
vanlig kommentar.'''

En kommentar kan följa efter vanlig kod. Python kommer då läsa och köra all kod fram till # eller '''. Exempel följer:

min_variabel = 10 # Detta är en kommentar

din_variabel = 20 '''Detta är en kommentar'''

Variabler i Python

I princip alla programmeringsspråk nyttjar variabler för att skapa, lagra och presentera data. En variabel är en enhet som innehåller information och denna informationen kan manipuleras och presenteras. I alla språk finns vissa regler avseende vilken typ av variabler som kan definieras, samt hur de kan namnes.

Variabler kan användas för att lagra flera olika typer av data (datatyper). Följande datatyper används i Python:

  • Siffror (numeric)
  • strängar (strings)
  • Bools (boolean)
  • Listor.

För att skapa en variabel använder man följande generella syntax:

# Generell syntax
variable = value

# Anger antal elever i en klass
elever = 24

# Namnet på en person
namn = "Johannes Svensson"

I ovanstående kod är variable namnet på variabeln. Value är det värdet som tillskrivs variabeln. Man använder = för att definiera värdet på variabeln. I första exemplet har vi angett att antal elever är 24. Variabeln elev blir tillskriven siffran 24. I andra exemplet skapar vi en sträng, nämligen ”Johannes Svensson” och tillskriver den till variabeln namn.

Som framgår av ovanstående exempel kan variabler innehålla olika datatyper. Det är viktigt att varje variabel innehåller en datatyp. Om man arbetar med flera datatyper så får man definiera en variabel för varje datatyp.

Datatyper i Python

1. Numeriska värden (siffror): numeric values

I Python kan ett numeriskt värde vara av följande två typer:

  • Integer (heltal) – En integer är ett heltal. Exempelvis: 1, 2, 3, 4, 5 och 6.
  • Float (tal med decimaler) – En float är ett numeriskt värde med en eller flera decimaler.

Numeriska variabler kan bland annat användas för att genomföra beräkningar. Variabler som man avser att genomföra beräkningar med måste vara definierade som numeric i Python.

2. Strängar: strings

Strängar (strings) är variabler som består av text, tecken och/eller siffror. I de flesta fall består strängar av text. Man specificerar en sträng genom att omsluta den med citationstecken. Ett exempel följer:

ditt_fornamn = "Johan"
ditt_efternamn = "Svensson"

I ovanstående exempel skapar vi två variabler. Den första variabeln kallas ”ditt_fornamn” och den andra kallas ”ditt_efternamn”. Dessa variabler skall spara information om för- och efternamn. Vi anger förnamnet och efternamnet omgivet av citationstecken. En sträng kan innehålla alla tecken och siffror. Exempel följer:

favorit_citat = "5 myror är fler än 4 elefanter"

I detta fall kommer siffrorna 5 och 4 endast behandlas som tecken, och inte som numeriska värden. Det går alltså inte att genomföra beräkningar med dessa siffror, vilket beror på att de är en del av en sträng.

I Python kan strängar specificeras med dubbla eller enkla citationstecken, som följer:

# Dubbla citationstecken
namn = "David"

# Enkelt citationstecken
namn = 'David'

Man kan skapa mer komplicerade strängar i Python. Genom att skriva \n så skapas en radbrytning (ny rad).

favoritcitat = "Vem kan ro utan vind,\nVem kan ro utan åror"
print(favoritcitat)

I ovanstående exempel kommer favoritcitat skrivas ut på två rader, med radbrytning där \n  placeras.

Ibland behöver man skriva citationstecken i en sträng. För att detta skall tolkas rätt av Python måste citationstecken i strängar föregås av backslash (\). Om du inte använder backslash så tolkar Python det som att strängen avslutas, vilket kan bli felaktigt. Följande exempel visar hur detta görs rätt och fel.

korrekt_1 = "Hello, you can\'t go there"

korrekt_2 = "Hello, do you know what \"Julafton\" is?"

felaktigt = "Hello, you can't go there"

I Python använder man procenttecken (%) för att interpolera strängar, vilket innebär att en sträng infogas i en annan. I följande exempel definierar vi variabeln dagens_lunch och den åberopas på nästa rad.

lunch = "spagetti"
lunch_presentation = "Idag ska vi äta %s" % lunch

Man kan extrahera tecken på specifika platser i en sträng. Det är exempelvis vanligt att man vill ha en sträng på en specifik plats. Låt oss säga att vi vill extrahera det första tecknet i strängen lunch_presentation. För att göra detta används följande argument lunch_presentation[n] där n anger på vilken plats i strängen vi vill extrahera tecken. Man skulle kunna tro att koden lunch_presentation[1] returnerar ”I”, som är första tecknet i strängen ”Idag ska vi äta spagetti”, men så är inte fallet. Detta beror på att Python är zero indexed, vilket innebär att första tecknet har position noll (0). För att komma åt ”I” måste man alltså skriva  lunch_presentation[0]. Alla index i Python börjar alltså på noll (0).

För att extrahera de första 4 tecknen i strängen lunch_presentation så skriver du som följer:

lunch_presentation[0:4]
# Resultat: Idag

Med hjälp0:4 kan du definiera en sekvens från 0 till 4, vilket är totalt 5 platser i index (0, 1, 2, 3, 4) men trots detta extraheras endast de första 4 tecknen; detta beror på att den sista instansen i ett index aldrig extraheras. Så att specificera0:4 leder till att man extraherar 0, 1, 2 och 3.

3. Bools (Booleans, Booleask)

En variabel som endast antar värdet sant (True) eller falskt (False) kallas boolean på engelska. Motsvarande svensk term är bool eller booleask variabel. Booleaska variabler är viktiga inom all programmering. Man har ofta stor nytta av denna typ av variabler. Låt oss nu skapa en variabel som kallas astma (astma är en sjukdom som drabbar många barn) och den specificeras här som sann. Man använder den engelska benämningen och första bokstaven måste vara versal (stort T).

astma = True

Python tolkar nu variabeln sjukdom som en bool och den är för tillfället TrueFöreställ dig att du har en databas med patienter och där vill du extrahera alla som har astma; då kan du enkelt selektera patienter där astma är True.

4. Listor

En lista innehåller en eller flera sekvenser med data. I de flesta andra språk kallas listor för arrayer. En lista kan innehålla flera olika variabler, som dessutom kan vara av olika typer (numerisk, bool, string). En lista i Python kan skapas enligt följande:

# En lista utan något innehåll
min_lista1 = []

# En lista som innehåller en sekvens med siffror
min_lista2 = [1, 2, 3, 4]

# En lista som innehållr en sekvens som defineras med ":"
min_lista3 = [1:4]

# En lista med strängar
min_lista4 = ["Adam", "Johan", "Eva", "Maria", "Martin", "Zubair", "Elmir", "Maria"]

# En lista med blandat innehåll
min_lista5 = ["Adam", [1, 2, 3], False]

Listor är mycket flexibla. De kan innehålla vilken datatyp som helst, och de kan dessutom innehålla andra listor. Detta gör att man kan lagra stor mängder data i en lista. Då blir det också viktigt att veta hur man extraherar olika komponenter ur en lista.

Extrahera information från listor

# Räkna hur många gånger "Maria" förekommer i min_lista4
# Detta görs genom att lägga till count()
min_lista4.count("Maria")
# Resultat: 2

# Ta reda på vilket index där "Maria" förekommer först
# Tänk på att index är zero based (börjar på 0)
min_lista4.index("Maria")
# Resultat: 3

# Hitta första instansen av "Maria" från och med indexposition 4
min_lista4.index("Maria", 4)
Resultat: 7

# Lägg till "Emelie" till listan
min_lista4.append("Emelie")
print(min_lista4)

I nästa steg skapas en lista som består av tre listor. Den här typen av data kallas även matris (eng. matrix).

lista = [
[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12],
]

För att extrahera den tredje listan i ovanstående lista, så används följande kod:

lista[2]
# Resultat: "9, 10, 11, 12"

Data frame

En data frame är i princip det samma som en tabell. Den som har arbetat med Excel vet hur en tabell ser ut: det finns rader och kolumner. Oftast utgör kolumnerna variabler och raderna utgör observationer. Data frames används för att beskriva just sådana data. Data frames är mycket viktiga i både Python och liknande program (t ex R). De flesta funktioner och bibliotek som används till analys av data kräver nämligen att data är strukturerat i data frames. I Python är biblioteket Pandas mycket viktigt för att hantera och manipulera data frames. I följande exempel installerar och aktiverar vi Pandas, varefter vi skapar en data frame.

# Vi importerar pandas och förkortar det till "pd"
import pandas as pd

# Objektet "skolklass" skapas. Objektet innehåller 4 dictionaires
skolklass = {'Elev': ['Adam', 'Iris', 'Mona'],
         'Vikt': [71, 67, 85],
         'Langd': [172, 167, 180],
         'Blodtryck': [140, 115, 119]}

# med hjälp av funktionen "from_dict" i pandas modul "DataFrame" så skapas nu "data"
data = pandas.DataFrame.from_dict(skolklass)

print(data)
0/5 (0 Reviews)