Når vi programmerer, bruker vi gjerne mer tid på å lese kode enn på å skrive kode. Det kan være at vi skal modifisere kode vi har overtatt fra noen andre, da vil vi måtte studere koden en stund først for å finne ut hvordan den virker. Det kan være vi skal arbeide videre med kode vi har skrevet selv for en tid siden, da vil vi måtte lese oss opp på koden for å huske hvordan den virker. Og selv når vi er aktivt i gang med å skrive, bruker vi en del tid på å lese i den koden vi arbeider med. Det er derfor viktig at vi sørger for at koden er lett å forstå. Vi bør sørge for at koden ikke er for sammensatt og uoversiktlig, og i tillegg kan vi legge inn forklaringer.
De fleste programmeringsspråk lar oss også legge inn forklaringer i form av noe vi kaller kommentarer. Kommentarer er tekst som er beregnet på å leses av mennesker, og blir ignorert av datamaskinen. I Python er en kommentar all tekst på ei linje som følger etter tegnet #. En kommentar kan stå på ei linje for seg selv, men kan også stå bak Python-kode på ei linje.
Vi bør kommentere på en måte som forklarer kode som ikke er umiddelbart enkel å forstå, men unngå å kommentere det opplagte.
Eksempel 1:
Vi har Python-kode for å lese inn to tall og skrive ut produktet av tallene. Den kan vi kommentere slik, kommentaren vist med grå skrift:
# Les inn heltallene x og y, og skriv ut x, y og produktet av x og y
x = int(input("Oppgi verdien til x: "))
y = int(input("Oppgi verdien til y: "))
print(f"{x} * {y} = {x*y}")
Alternativt slik:
x = int(input("Oppgi verdien til x: ")) # Les inn heltall x
y = int(input("Oppgi verdien til y: ")) # Les inn heltall y
print(f"{x} * {y} = {x*y}") # Skriv ut x, y og produktet av x og y
Det er smak og behag hva en velger, men den siste varianten er kanskje i overkant detaljforklarende.
I Thonny får kommentarer grå skrift, og det derfor lett å se at de ikke er en del av selve koden.
Kommentarer som står på samme linje som Python-kode, slik som i den siste varianten i eksempel 1, kalles inline-kommentarer. Stilguiden PEP 8 anbefaler å ha to blanke tegn mellom koden og tegnet #, og deretter ett blankt tegn mellom # og den følgende teksten.
Kommentere ut kode
Når vi arbeider med å utvikle kode, kan det være at vi ønsker å midlertidig fjerne linjer. I stedet for da å faktisk fjerne dem fra koden, kan vi kommentere dem ut, det vil si at vi setter tegnet # først på de linjene vi vil ha bort, slik at Python ignorerer dem. Hvis vi siden vil reaktivere linjene, fjerner vi #-tegnene.
Eksempel 2:
Vi har Python-kode for å lese inn to tall og skrive ut produktet av tallene som i eksempel 1. Men la oss så si at vi er interessert i å eksperimentere litt med formatet på utskriften. Da trenger vi en x-verdi og en y-verdi, samme hvilke, men det vil være tungvint å måtte skrive noe inn hver gang vi tester koden. Vi kommenterer derfor ut linjene med innlesing, og gir x og y et par faste verdier. Vi sier at vi hardkoder verdiene. Det kan se slik ut:
# x = int(input("Oppgi verdien til x: ")) # Les inn heltall x # y = int(input("Oppgi verdien til y: ")) # Les inn heltall y x = 3 y = 4 print(f"{x} * {y} = {x*y}") # Skriv ut x, y og produktet av x og y
Her ser vi at de to første linjene er gjort om til kommentarer ved at de begynner med tegnet #. Disse linjene blir da ignorert av Python. Det har ingen betydning at det kommer et nytt kommentartegn lenger ut på linja.
Hvis vi vil kommentere ut eller fjerne kommentarer på mange linjer samtidig, kan det være praktisk å bruke menyvalgene «Rediger» – «Kommenter ut» og «Rediger» – «Fjern kommentar» i Thonny. Dette valget setter inn og tar bort kommentartegn på alle linjer vi har markert.
Kilder
-
- Matthes A. (2019). Python Crash Course. no starch press
Programmeringsspråk som C og JavaScript har mulighet for kommentarer som går over flere linjer. Kommentarene avgrenses da av symbolene /* og */. Det finnes ikke noe tilsvarende i Python. Det går riktignok an å få Python til å ignorere flere linjer ved å innlede og avslutte linjene med triple anførselstegn, men dette gir egentlig en frittstående streng. Den ignoreres av Python, men får fargekode som en streng, ikke en kommentar, i editorer som Thonny.