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
- Varför är det viktigt att använda tydliga variabelnamn?
- Vad kan hända om man använder otydliga namn i sin kod?
- När är det bra att använda kommentarer i ett program?
- När är det onödigt att använda kommentarer?
- Vad innebär det att strukturera kod?
- Varför är det bra att dela upp program i funktioner?
- Vad kännetecknar läsbar kod?
- Hur kan man göra ett program lättare att förstå för andra?
- Varför är det viktigt att skriva kod som man själv förstår i efterhand?
- Vad kan du göra för att förbättra din egen kod i framtiden?