Programmering nivå 1 med Python

Kapitel 11: Struktur och läsbar kod

I detta kapitel lär du dig namngivning, kommentarer och hur du strukturerar kod så att program blir tydliga och lätta att underhålla.

Innehållsförteckning

Klicka på ett avsnitt för att hoppa direkt.

11.1 Namngivning

När man programmerar är det viktigt att använda tydliga namn på variabler och funktioner.

Bra namn gör koden

  • lättare att läsa
  • lättare att förstå
  • lättare att felsöka

Dåliga namn

x = 10
y = 20
z = x + y

Det är svårt att förstå vad variablerna betyder.

Bra namn

width = 10
height = 20
area = width * height

Nu blir det tydligare vad programmet gör.

Namn på funktioner

Funktioner bör ha namn som beskriver vad de gör.

Dåligt exempel

def f(a, b):
    return a + b

Bra exempel

def add(a, b):
    return a + b

Regler i Python

Variabelnamn

  • ska börja med en bokstav eller underscore
  • får innehålla bokstäver och siffror
  • får inte vara ett reserverat ord

Bra vanor

  • Använd engelska namn i kod
  • Använd små bokstäver
  • Använd tydliga ord istället för förkortningar

Exempel

total_price = 100
user_name = "Anna"

Sammanfattning

Bra namngivning gör att

  • koden blir tydligare
  • det blir lättare att förstå programmet
  • det blir enklare att arbeta vidare med koden

Övning

Förbättra namnen i koden nedan

a = 5
b = 10
c = a * b
print(c)

11.2 Kommentarer

Kommentarer används för att förklara kod.

En kommentar skrivs med tecknet # och körs inte av programmet.

Exempel

# detta är en kommentar
print("Hej")

Kommentarer används för att göra koden lättare att förstå för andra och för dig själv.

När man ska använda kommentarer

Kommentarer är bra när man vill

  • förklara vad programmet gör
  • förklara svåra delar av koden
  • beskriva syftet med variabler eller funktioner

Exempel

# fråga användaren efter ålder
age = int(input("Hur gammal är du? "))

# räkna ut ålder om 5 år
future_age = age + 5

print(f"Om fem år är du {future_age} år gammal")

När man inte ska använda kommentarer

Man ska inte skriva kommentarer som bara upprepar vad koden redan visar.

Dåligt exempel

# sätt x till 10
x = 10

Det är redan tydligt vad koden gör.

Bättre kod istället för kommentarer

Ibland är det bättre att skriva tydligare kod istället för att använda kommentarer.

Dåligt exempel

# räkna ut area
a = w * h

Bättre exempel

area = width * height

Nu behövs ingen kommentar eftersom variabelnamnen är tydliga.

Kommentarer i funktioner

Kommentarer är extra viktiga i funktioner.

def add(a, b):
    # returnerar summan av två tal
    return a + b

Sammanfattning

Använd kommentarer för att

  • förklara varför något görs
  • förklara svår kod

Undvik kommentarer som förklarar självklar kod. Det beror på vem som ska läsa koden hur utförlig den ska vara.

Övning

Lägg till lämpliga kommentarer i koden

name = input("Vad heter du? ")
age = int(input("Hur gammal är du? "))
future_age = age + 10
print(f"Hej {name}")
print(f"Om tio år är du {future_age} år gammal")

11.3 Strukturera kod

Att strukturera kod betyder att man organiserar programmet så att det blir lätt att läsa, förstå och vidareutveckla.

Bra struktur gör stor skillnad när program blir större.

Dela upp i funktioner

Istället för att skriva all kod i en lång lista kan man dela upp programmet i funktioner.

Dåligt exempel

name = input("Vad heter du? ")
age = int(input("Hur gammal är du? "))
future_age = age + 5
print(f"Hej {name}")
print(f"Om fem år är du {future_age} år gammal")

Bättre exempel

def greet(name):
    print(f"Hej {name}")

def calculate_future_age(age):
    return age + 5

name = input("Vad heter du? ")
age = int(input("Hur gammal är du? "))
greet(name)
future_age = calculate_future_age(age)
print(f"Om fem år är du {future_age} år gammal")

Använd tydliga steg

Ett program blir tydligare om det följer en struktur

  • input
  • bearbetning
  • output

Exempel

# input
age = int(input("Hur gammal är du? "))

# bearbetning
future_age = age + 5

# output
print(f"Om fem år är du {future_age} år gammal")

Undvik onödigt upprepad kod

Om samma kod används flera gånger bör man använda funktioner.

Dåligt exempel

print("Hej Anna")
print("Hej Erik")
print("Hej Sara")

Bättre exempel

def greet(name):
    print(f"Hej {name}")

greet("Anna")
greet("Erik")
greet("Sara")

Sammanfattning

Bra struktur innebär att

  • program delas upp i funktioner
  • koden följer tydliga steg
  • upprepning undviks

Det gör programmet

  • lättare att läsa
  • lättare att felsöka
  • lättare att utveckla

Övning

Gör om koden så att den använder funktioner

name = input("Vad heter du? ")
number = int(input("Skriv ett tal: "))
result = number * 2
print(f"Hej {name}")
print(f"Ditt tal gånger två är {result}")

11.4 Dela upp program och läslig kod

När program blir större är det viktigt att både dela upp programmet och skriva läsbar kod.

Det gör att programmet blir lättare att förstå, ändra och felsöka.

Dela upp program i delar

Ett program bör delas upp i mindre delar med hjälp av funktioner. Varje funktion ska ha en tydlig uppgift.

Exempel

def greet(name):
    print(f"Hej {name}")

def double(number):
    return number * 2

name = input("Vad heter du? ")
number = int(input("Skriv ett tal: "))

greet(name)

result = double(number)
print(f"Resultatet är {result}")

Läslig kod

Kod ska vara lätt att läsa, både för dig själv och för andra.

Det uppnås genom

  • tydliga variabelnamn
  • tydliga funktioner
  • bra struktur
  • korrekta indrag

Exempel på oläslig kod

n=input("namn")
a=int(input("ålder"))
print("hej",n,a+5)

Exempel på läsbar kod

name = input("Vad heter du? ")
age = int(input("Hur gammal är du? "))

future_age = age + 5

print(f"Hej {name}")
print(f"Om fem år är du {future_age} år gammal")

Tänk på

  • Lämna tomma rader mellan delar av programmet
  • Använd konsekvent stil
  • Undvik onödigt komplex kod

Sammanfattning

Att dela upp program och skriva läsbar kod gör att

  • program blir tydligare
  • det blir enklare att hitta fel
  • det blir lättare att utveckla vidare

Övning

Förbättra koden så att den blir mer läsbar

x=input("namn")
y=int(input("tal"))
z=y*2
print("hej",x)
print(z)

11.5 Övningar

I dessa övningar ska du träna på

  • namngivning
  • kommentarer
  • struktur
  • läsbar kod

Övning 1

Förbättra namnen i koden

a = 5
b = 10
c = a + b
print(c)

Övning 2

Lägg till kommentarer som förklarar vad koden gör

name = input("Vad heter du? ")
age = int(input("Hur gammal är du? "))
future_age = age + 5
print(f"Hej {name}")
print(f"Om fem år är du {future_age} år gammal")

Övning 3

Gör koden mer läsbar

n=input("namn")
x=int(input("tal"))
y=x*2
print("hej",n)
print(y)

Övning 4

Dela upp programmet i funktioner

name = input("Vad heter du? ")
number = int(input("Skriv ett tal: "))
result = number * 2
print(f"Hej {name}")
print(f"Ditt tal gånger två är {result}")

Övning 5

Skriv ett eget program som

  • frågar användaren efter namn och ålder
  • räknar ut hur gammal personen är om 10 år
  • använder funktioner
  • har tydliga variabelnamn
  • innehåller minst två kommentarer

Programmet ska vara lätt att läsa och förstå.

11.6 Reflektionsfrågor

  1. Varför är det viktigt att använda tydliga variabelnamn?
  2. Vad kan hända om man använder otydliga namn i sin kod?
  3. När är det bra att använda kommentarer i ett program?
  4. När är det onödigt att använda kommentarer?
  5. Vad innebär det att strukturera kod?
  6. Varför är det bra att dela upp program i funktioner?
  7. Vad kännetecknar läsbar kod?
  8. Hur kan man göra ett program lättare att förstå för andra?
  9. Varför är det viktigt att skriva kod som man själv förstår i efterhand?
  10. Vad kan du göra för att förbättra din egen kod i framtiden?