Här kommer jag att gå igenom de absoluta grunderna i Python. Vi kommer att göra några små enkla program som exempel för att bättre förstå vad det är vi går igenom. Vi kommer gå igenom bland annat syntaxen i Python, variabler, if-satser, loopar med mera.

Kort om syntaxen

Hela Pythons syntax bygger på korrekt indentering av koden. Många andra programmeringsspråk använder klammerparenteser för att markera kodblock som hör till if-satser och loopar och bryr sig inte ett dugg om indenteringarna. Detta använder inte Python, istället styrs allting av indenteringarna. Detta har den fina sidoeffekten att koden alltid blir snyggt formaterad och lättläslig.

I början kan dock indenteringarna te sig lite märkliga för den som är helt ny på programmering. Särskilt rörigt blir det om man råkar blanda mellanslag och tabb-tecken som indenteringar. I ett och samma Python-program måste man nämligen vara konsekvent med indenteringarna. Antingen använder man tabb-tecken, eller så använder man mellanslag (antalet mellanslag måste också vara detsamma i hela programmet).

Var ska då koden indenteras? Så fort vi har en loop eller en if-sats, eller en annan rad som slutar med ett kolon (:) skall de rader som hör ihop med if-satsen eller loopen indenteras. Så fort indenteringen upphör är vi utanför loopen eller if-satsen igen.

#!/usr/bin/env python3

if (3 < 10):
   print("Tre är mindre än tio")
   print("Inuti if-satsen")

print("Nu är vi utanför if-satsen")

Detta enkla program ger utskriften

Tre är mindre än tio
Inuti if-satsen
Nu är vi utanför if-satsen

Långa rader som delas upp i kortare rader behöver oftast inte indenteras, däremot bör man göra så ändå för att det lättare ska gå att se att de båda raderna hör ihop med varandra.

#!/usr/bin/env python3

print("Hej på er " +
   "Kalle & Lisa")

De båda raderna ovan kommer att skrivas ut på en och samma rad. Utskriften kommer alltså att vara:

Hej på er Kalle & Lisa

Notera ovan att vi alltid måste ha matchande parenteser runt funktionsanrop (detta måste man ha i alla programmeringsspråk). Det är lätt att missa som ny programmerare och orsaker ofta mycket huvudvärk. print()-raden ovan har en öppningsparentes på den första raden och en slutparentes på den andra raden. Notera också att strängar omges av citattecken, precis som de flesta andra språk. Strängar slås samman med plustecknet (+).

Kommentarer

Kommentarer i koden är text som helt ignoreras av Python och används för att dokumentera koden. Utan kommentarer kan ett program bli mycket svårt att förstå. I Python skriver vi enstaka kommentarer med brädgången (#). Långa kommentarer som löper över flera rader skrivs med tre styck enkelcitat-tecken (‘).

ANNONS FÖR VÅRA EGNA BÖCKER Demonerna på internet

#!/usr/bin/env python3

# Detta är en kommentar på en enda rad

'''Denna kommentaren är mycket längre
och sträcker sig över flera rader.
Dessa är bra för att skriva en inledande
text om programmet, t.ex. förklara vad
programmet gör för något'''

print("Hej hej...")

Variabeldeklarationer

Variabler deklareras och sätts i ett och samma moment i Python. Se exemplen här nedanför. Vi behöver alltså inte själva explicit ange vad som ska vara heltal, flyttal och så vidare. Om en variabel sätts till ett flyttal, blir också datatypen automatiskt ett flyttal.

#!/usr/bin/env python3

namn = "Kalle" # En sträng
pi = 3.141592 # Ett flyttal
veckodagar = 7 # Heltal

När vi använder variablerna i vår kod skriver i bara namnet på variabeln, vi behöver alltså inte använda dollartecken eller liknande för att beteckna att det är en variabel vi vill komma åt.

#!/usr/bin/env python3

namn = "Kalle" # En sträng
pi = 3.141592 # Ett flyttal
veckodagar = 7 # Heltal

print("Antalet dagar i veckan är " + str(veckodagar))

diameter = 5
omkrets = diameter * pi

print("Omkretsen för cirkeln är " + str(omkrets) +
   " om diametern är " + str(diameter))

Kör vi detta programmet blir utskriften enligt nedan.

Antalet dagar i veckan är 7
Omkretsen för cirkeln är 15.70796 om diametern är 5

Notera i koden ovan att vi var tvungna att tala om för Python att vi ville skriva ut variablerna veckodagar, omkrets och diameter som strängar med nyckelordet str(). Detta beror på att vi i en och samma print()-sats inte kan blanda strängar och andra typer som heltal och flyttal. Därför måste vi göra om variablerna vid utskrift till strängar istället för heltal och flyttal. Däremot kommer inte innehållet i variablerna att ändras till strängar, de är fortfarande heltal och flyttal. Det är bara vid utskriften på skärmen de skrivs ut som strängar.

Kort om if-satser och loopar

Precis som i alla andra språk kan vi nästla flera nivåer av loopar och if-satser. Här är det extra viktigt att hålla ordning på indenteringarna för att det hela ska fungera. Ofta har man if-satser inuti en loop för att testa olika värden. Vi måste då indentera både loopen och if-satsen som i exemplet nedan.

#!/usr/bin/env python3

'''Lista alla udda tal mellan
1 och 20 genom att använda modulo-operatorn
(%) för testa om det blir någon rest'''

for x in range(1,21):
    if(x % 2 != 0):   # != betyder 'inte lika med'
        print(x)

Utskriften från detta programmet blir:

1
3
5
7
9
11
13
15
17
19

Här använde vi for-loopen för att loopa igenom alla tal mellan 1 och 20. range()-funktionen stegar igenom de talen vi anger, från och med det första talet (1), upp till men inte inkluderat det sista talet (21). Endast de tal som ger en rest vid division med två kommer att skrivas ut på skärmen. Dessa är de talen som är udda.

Det finns en annan typ av loop också, nämligen while-loopen som används på ett lite annat sätt än for-loopen. Medan for-loopen loopar igenom att förutbestämt antal element, loopar while-loopen tills dessa att ett uttryck inte längre är sant.

#!/usr/bin/python3

raknare = 0

while (raknare <= 10): # Medan raknare är mindre än eller lika med 10
    print("Vi är nu på " + str(raknare)) # Skriv ut raknare
    raknare = raknare + 1 # Öka raknare med ett för varje varv

print("Klart!!") # Utanför loopen

Utskriften från detta lilla programmet blir:

Vi är nu på 0
Vi är nu på 1
Vi är nu på 2
Vi är nu på 3
Vi är nu på 4
Vi är nu på 5
Vi är nu på 6
Vi är nu på 7
Vi är nu på 8
Vi är nu på 9
Vi är nu på 10
Klart!!

I koden ovan såg vi också att loop-raderna alltid avslutas med ett kolon (:).

Flera val i if-satser

Vi behöver ofta göra program som kan ta flera olika vägar i en if-sats och inte bara ett enda val. Vid sådana tillfällen använder vi elif och else. Dessa if-satser hör då samman, och följer if-satserna uppifrån och ned, i tur och ordning. På första if eller elif-satsen som är sann, kommer hela den sammanhängande if-satsen att stanna. elif är en förkortning av else if.

#!/usr/bin/env python3

plats = input("Vart bor du? ")

if (plats == "Ankeborg"):
    print("Du är en karraktär från Disney")
elif (plats == "Romulus"):
    print("Du är en romulan från Star Trek")
elif (plats == "Gotham City"):
    print("Är du Batman?")
else:
    print("Du kanske rent av bor i den riktiga världen?")

Om vi kör ovanstående stycke kod och svarar Ankeborg, Romulus eller Gotham City skrivs meningarna ut som hör till den aktuella if- eller elif-satsen. Svarar vi något annat, till exempel Helsingborg, skrivs texten som hör till else-satsen ut.

Här såg vi också att alla if-rader avslutas med ett kolon (:) och all kod som hör till if-satserna indenteras.

Var också noga med att alltid ange dubbla likhetstecken (==) som i koden ovan när vi ska göra jämförelser. Detta är också något man ofta gör fel på i början när man är ny. Använder man endast ett likhetstecken betyder det att vi ska tilldela ett värde till en variabel. Dubbla likhetstecken är det som är jämförelseoperatorn lika med.

Avslutning

Detta var en mycket kort introduktion till några av de viktigaste delarna i Python och programmering. Vill du lära dig mer så ta gärna en titta på de övriga inläggen om Python här på sidan.